openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Abe White (JIRA)" <j...@apache.org>
Subject [jira] Commented: (OPENJPA-201) Mapping Tool ignores the @JoinColumn annotation in a @ManyToOne mapping if the table argument is used
Date Mon, 09 Apr 2007 15:45:32 GMT

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


Mime
View raw message