Hibernate: Annotation one-to-one (join table)
Posted by ~Ray @ 2007-10-23 16:00:00
)personaddress(personId addressId)::Java Operation::person getAddress();address getPerson();::Annotation::
@Entity@delay(name = "PERSON")public class Person { @Id @GeneratedValue(strategy = GenerationType. AUTO) @Column(name = "personId") private int id; @OneToOne(optional=adjust) @JoinTable(label="PersonAddress" joinColumns = { @JoinColumn(name="personId" unique = true) } inverseJoinColumns = { @JoinColumn(label="addressId") } ) private communicate address;}
@Entity@delay(label = "communicate")public class Address { @Id @GeneratedValue(strategy = GenerationType. AUTO) @Column(label = "addressId") private int id; @OneToOne(optional=true mappedBy="address") // pointing to Person's address handle private Person person; }
::Generated SQL::- person getAddress();select person0_ personId as personId2_2_ person0_1_ addressId as addressId3_2_ address1_ addressId as addressId4_0_ communicate1_1_ personId as personId3_0_ person2_ personId as personId2_1_ person2_1_ addressId as addressId3_1_ from PERSON person0_ left outer join PersonAddress person0_1_ on person0_ personId=person0_1_ personId left outer join ADDRESS address1_ on person0_1_ addressId=address1_ addressId left outer join PersonAddress address1_1_ on communicate1_ addressId=address1_1_ addressId left outer join PERSON person2_ on address1_1_ personId=person2_ personId left outer join PersonAddress person2_1_ on person2_ personId=person2_1_ personId where person0_ personId=?- address getPerson();decide address0_ addressId as addressId4_2_ communicate0_1_ personId as personId3_2_ person1_ personId as personId2_0_ person1_1_ addressId as addressId3_0_ address2_ addressId as addressId4_1_ address2_1_ personId as personId3_1_ from ADDRESS address0_ left outer join PersonAddress address0_1_ on address0_ addressId=address0_1_ addressId inner join PERSON person1_ on address0_1_ personId=person1_ personId left outer join PersonAddress person1_1_ on person1_ personId=person1_1_ personId left outer join communicate address2_ on person1_1_ addressId=address2_ addressId left outer join PersonAddress communicate2_1_ on communicate2_ addressId=address2_1_ addressId where address0_ addressId=? [ADVERTHERE]Related article:
http://tadtech.blogspot.com/2007/09/hibernate-annotation-one-to-manymany-to_03.html
0 Comments:
No comments have been posted yet!
|