> I've done that, but then JPOX seems to want a primary key in the join
> table and supplies it, though there is none in the schema or metadata.
>
> [java] [FATAL] tck - Exception during setUp or runtest:
> <javax.jdo.JDODataStoreException: Put request failed : INSERT INTO
> EMPLOYEE_PHONENO_TYPE (PHONENO,EMPID,ADPT_PK_IDX,"TYPE") VALUES (?,?,?,?)
> [java] NestedThrowables:
> [java] SQL Exception: 'ADPT_PK_IDX' is not a column in table or VTI
> 'TCKUSER.EMPLOYEE_PHONENO_TYPE'.>javax.jdo.JDODataStoreException: Put
> request failed : INSERT INTO EMPLOYEE_PHONENO_TYPE
> (PHONENO,EMPID,ADPT_PK_IDX,"TYPE") VALUES (?,?,?,?)
> [java] at
> org.jpox.store.rdbms.scostore.NormalMapStore.put(NormalMapStore.java:462)
Michelle,
This is a different issue to the one before. You previously had a M-N between
Employee and Project - and so adding the <join> to the other end should have
fixed that, presumably it did.
What is this relationship causing the issue ? I'm guessing a Map in Person of
<String, String>. It is a perfectly valid thing for an impl to want to put a
PK on any table. It is also a valid thing for an impl to add additional
columns where required to allow duplicates etc. Depends on the exact nature
of this relation in question. This page
http://www.jpox.org/docs/1_1/relationships_1_N_map.html
shows what JPOX currently does for Maps. If you can identify which one you
have, then maybe Erik or I can remember why there is an ADPT_PK_IDX column
being added in this particular situation.
PS. Next nightly build (20050527) will *not* need the use of <join> on both
ends of a M-N, so you can have a "mapped-by" on one end and <join> on the
other end of the M-N as you had before.
--
Andy
JPOX - Java Persistent Objects
|