This content has been marked as final.
Show 3 replies
-
1. Re: NewBie @OneToOne question
wolfgangknauf Mar 13, 2009 11:26 AM (in response to delarue)Hi,
I think that the "name" attribute of the "@JoinColumn" denotes the column name in your "User" table. The "referencedColumn" should be the name of the primary key column in your child table.
So, to achieve your sql snippet, your relationship should be:@OneToOne @JoinColumn(name="mycar_id", referencedColumnName="car_id") public Car getMyCar() ...
But normally the @OneToOne annotation should work without any @JoinColumn annotations. The server will choose defaults for the column names. So, start with the easiest solution and remove the @JoinColumn annotation ;-).
Hope this helps
Wolfgang -
2. Re: NewBie @OneToOne question
delarue Mar 13, 2009 12:47 PM (in response to delarue)"Wolfgang Knauf" wrote:
Hi,
I think that the "name" attribute of the "@JoinColumn" denotes the column name in your "User" table. The "referencedColumn" should be the name of the primary key column in your child table.
Ok, I understand better. I found my id and columns back ...
With this form, the sql generates a constraint with a random name for the foreign key. On the trace of jboss, I see something like :alter table .Car add index FK107B4B78C84CE (USER_ID), add constraint FK107B4B78C84CE foreign key (USER_ID) references .User (id)
Is there a way of naming the foreign key : USER_CAR_FK instead of FK107B4B78C84CE ?
Since the design was done in the database and not in the EJB annotation.
Is it possible to have a strict mapping between a sql schema and a EJB annotation ?
But normally the @OneToOne annotation should work without any @JoinColumn annotations. The server will choose defaults for the column names. So, start with the easiest solution and remove the @JoinColumn annotation ;-).
Hope this helps
Wolfgang
This helps a lot ;))) I'll follow your suggestion for small apps, but for big apps, I have to replicate the database schema, thus I try that. -
3. Re: NewBie @OneToOne question
wolfgangknauf Mar 16, 2009 6:39 AM (in response to delarue)Hi,
as far as I know it is not possible to define the foreign key names.
Best regards
Wolfgang