openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Hardy <adam....@cyberspaceroad.org>
Subject Re: using TableGenerator for 1ary keys
Date Fri, 18 Jan 2008 00:35:56 GMT
Somebody beat me to Jira and has filed an issue there regarding this.

I tried this in Derby and it happens too, so it's not database-specific.

Adam Hardy on 16/01/08 14:12, wrote:
> I use TableGenerator mapping for primary keys on all my entity mappings. 
> The XML for the table-generator is in the thread below.
> 
> When I set up my app to use H2, the exact problem is as given in the 
> exception: the SQL statement generated by OpenJPA for H2 refers to the 
> table in the schema as
> 
> DEV.DEV.KEY_SEQUENCE
> 
> Obviously OpenJPA has prefixed the table name with the schema name twice 
> instead of once.
> 
> This is only when set up to use H2. When running against MySQL (which 
> has no notion of schemas), there is no problem.
> 
> I guess an easy further test would be to run the test against a 3rd 
> database which does implement schemas. I have already tried Hypersonic - 
> but there are other issues with that which prevent testing. I shall try 
> derby or postgres soon. Theoretically I may have configured the schema 
> in 2 different places in the config, but that situation should be 
> catered for, methinks.
> 
> Regards
> Adam
> 
> David Beer on 15/01/08 22:22, wrote:
>> Can you give at little more detail as to the exact problem with H2 or 
>> how you managed to solve the issue.
>>
>> Adam Hardy wrote:
>>> Realised the term is TableGenerator, not KEY_SEQUENCE, for the issue 
>>> that is causing problems here.
>>>
>>> I narrowed it down to H2. With Mysql, there is no problem.
>>>
>>> Adam Hardy on 15/01/08 11:55, wrote:
>>>> Doing a project with no dependency on any one database vendor, I am 
>>>> using KEY_SEQUENCE tables to manage my primary keys. This was 
>>>> working fine until I introduced a schema name. Now I get the 
>>>> following exception:
>>>>
>>>> org.apache.openjpa.lib.jdbc.ReportingSQLException: Table DEV not 
>>>> found; SQL statement:
>>>> SELECT LAST_KEY FROM DEV.DEV.KEY_SEQUENCE WHERE TABLE_SEQ = ? FOR 
>>>> UPDATE [42S02-64] {SELECT LAST_KEY FROM DEV.DEV.KEY_SEQUENCE WHERE 
>>>> TABLE_SEQ = ? FOR UPDATE} [code=42102, state=42S02]
>>>>
>>>>
>>>> My schema name is DEV and OpenJPA has prefixed it onto the table 
>>>> name twice! I configure the schema name via the database connection 
>>>> parameters, e.g.
>>>>
>>>> openjpa.jdbc.Schema=DEV
>>>>
>>>> This is my KEY_SEQUENCE config if it helps:
>>>>
>>>>   <table-generator name="codeKeySequence" table="KEY_SEQUENCE"
>>>>     pk-column-name="TABLE_SEQ" value-column-name="LAST_KEY"
>>>>     pk-column-value="CODE">
>>>>   </table-generator>
>>>>
>>>> This is happening in both OpenJPA v 1.0.1 and 1.1.0. I'll have to 
>>>> look into this further now to see if it is a problem just with the 
>>>> org.apache.openjpa.jdbc.sql.H2Dictionary that I am using.
>>>>
>>>> Does anyone have key sequence tables in a named schema working in 
>>>> any database?
> 
> 


Mime
View raw message