[ 
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.

Reply via email to