[jboss-user] [EJB 3.0] - Re: Need some help with mapping
MikeDougherty
do-not-reply at jboss.com
Thu Apr 5 13:09:53 EDT 2007
Yeah, you are right. I think the primary key in this case is breaking a few rules. I think one column in this case would be sufficient, but being an application developer and not a database developer, what do I know. I will make some effort to push back (if even possible). But for now I need to keep trudging ahead.
So.... changing the mapping to @ManyToOne did not seem to have the desired effect.
| State: FAILED
| Reason: org.hibernate.AnnotationException: A Foreign key refering com.foo.entities.Type from com.foo.entities.Store has the wrong number of column. should be 3
|
| @ManyToOne
| @JoinColumn(name="STORE_TYPE", referencedColumnName = "TYPE_ID")
| public Type getStoreType() {
| return storeType;
| }
|
You had multiple JoinColumns in your earlier post. But the STORE table doesn't have a TABLE_NAME column in it. So how do I map that column of the TypePK class to a static value? I would like to try something like the following, but I don't think this will work the way it is.
| @ManyToOne
| @JoinColumn(name="STORE_TYPE", referencedColumnName = "TYPE_ID")
| @DiscriminatorColumn(name="TABLE_NAME", discriminatorType=STRING,length=20)
| @DiscriminatorValue("STORE")
| @DiscriminatorColumn(name="FIELD_NAME", discriminatorType=STRING,length=20)
| @DiscriminatorValue("STORE_TYPE")
| public Type getStoreType() {
| return storeType;
| }
|
But I believe @DiscriminatorColumn and @DiscriminatorValue are class level annotations, not method level. Is that a correct assumption? If so, is there a way to get the results of those annotations another way?
Thanks.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4035098#4035098
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4035098
More information about the jboss-user
mailing list