[jira] Commented: (OPENJPA-201) Mapping Tool ignores the @JoinColumn annotation in a @ManyToOne mapping if the table argument is used
[ https://issues.apache.org/jira/browse/OPENJPA-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487816 ] Abe White commented on OPENJPA-201: --- I'm sorry, but I don't understand what you're trying to accomplish. You say that Winery maps to two tables, but I don't see any SecondaryTable defined for it. You give the results of various annotations, but I don't know what the actual schema looks like or what relations you want mapped to what columns. > 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 > Attachments: Wine.java, Winery.java > > > @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 - 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.
[jira] Commented: (OPENJPA-201) Mapping Tool ignores the @JoinColumn annotation in a @ManyToOne mapping if the table argument is used
[ 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 - 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.
[jira] Commented: (OPENJPA-201) Mapping Tool ignores the @JoinColumn annotation in a @ManyToOne mapping if the table argument is used
[ https://issues.apache.org/jira/browse/OPENJPA-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487361 ] George Hongell commented on OPENJPA-201: In this case, the named table is the primary table for the entity and defined with a @Table(name="cxWinery") annotation. There is no SecondaryTable defined. > 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 - 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.
[jira] Commented: (OPENJPA-201) Mapping Tool ignores the @JoinColumn annotation in a @ManyToOne mapping if the table argument is used
[ https://issues.apache.org/jira/browse/OPENJPA-201?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12487321 ] Abe White commented on OPENJPA-201: --- Is the named table defined as a SecondaryTable anywhere? How is OpenJPA supposed to know what to do with it? (This would still be a bug either way, but I'm curious whether it's a "need better mapping validation" bug or a "not functioning correctly" bug.) > 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 - 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.