[ https://issues.apache.org/jira/browse/OPENJPA-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487565 ]
Abe White commented on OPENJPA-201: ----------------------------------- The primary table for what entity? The primary table for the entity shown in your example is clearly "CxWine", but the JoinColumn references a table "cxWINERY". That table doesn't appear anywhere else in the example code. So if it's not the entity's table and it's not a secondary table, then it's not a valid mapping. If you mean it's the primary table of the related entity, then that is not supported by vanilla JPA. The JPA spec does not support one-sided relations based on an inverse foreign key. You'd have to make the relation a two-sided relation and use "mappedBy" on the side that doesn't own the foreign key. OpenJPA does actually support one-sided inverse-key relations, however. We can go over its support in OpenJPA, but first I'd like confirmation that that's the intent. It doesn't seem likely that each Winery record contains a foreign key to a single Wine record, so maybe I'm on the wrong track. > Mapping Tool ignores the @JoinColumn annotation in a @ManyToOne mapping if > the table argument is used > ----------------------------------------------------------------------------------------------------- > > Key: OPENJPA-201 > URL: https://issues.apache.org/jira/browse/OPENJPA-201 > Project: OpenJPA > Issue Type: Bug > Environment: 0.9.7-incubating-SNAPSHOT > Reporter: George Hongell > Priority: Minor > > @Entity > @Table(name="CxWine") > public class Wine { > @Id > private Integer wineid; > ... > @ManyToOne() > @JoinColumn(name="NEW_WINERY_WINERYID", referencedColumnName="WINERYID", > table="cxWinery") > //ignored @JoinColumn(name="NEW_WINERY_WINERYID", > referencedColumnName="WINERYID", table="cxWinery") > //ignored @JoinColumn(name="NEW_WINERY_WINERYID", > referencedColumnName="WINERYID", table="cxWinery") > //ignored @JoinColumn(name="NEW_WINERY_WINERYID", table="cxWINERY") > //ok @JoinColumn(name="NEW_WINERY_WINERYID", referencedColumnName="wineryid") > //ok @JoinColumn(name="NEW_WINERY_WINERYID") > private Winery winery; > ... > } > generates > 2744 cxwineTour TRACE [main] openjpa.jdbc.SQL - <t 1094861122, conn > 98698722> executing stmnt 1325027066 CREATE TABLE CxWine (wineid INTEGER NOT > NULL, cost SMALLINT, description VARCHAR(254), minimumHoldYears INTEGER, > rating SMALLINT, stockCount INTEGER, type VARCHAR(20), version INTEGER, > alcoholPercent DOUBLE, ava VARCHAR(40), bottler VARCHAR(40), brandName > VARCHAR(40), labelWineClass VARCHAR(20), labelWineColor VARCHAR(20), > estateBottled SMALLINT, hasSulfites SMALLINT, labelid INTEGER, mlContents > INTEGER, qualityDesignation VARCHAR(40), vineyardName VARCHAR(40), vintage > TIMESTAMP, wineName VARCHAR(40), winery_wineryid INTEGER, PRIMARY KEY > (wineid)) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.