java - Hibernate mutiple relationships doesn't work -


when create 2 one-to-one relationships in end 1 of 2 saved other 1 becomes null.

in sql trace can see mfuitvoeringjoin saves 2 id's when should saving 3 :s

is there wrong here?

@entity @table(name = "stud1630651.mfuitvoering") public class uitvoering {  @id @generatedvalue(strategy=generationtype.auto, generator="my_entity_seq_gen") @sequencegenerator(name="my_entity_seq_gen", sequencename="hibernate_sequence_uitvoering") @column(name = "id") private int id;  @column(name = "datum") private string datum;  @column(name = "schouwburg") private string schouwburg;  @onetoone(cascade=cascadetype.all)   @jointable(name="mfuitvoeringjoin",joincolumns= {@joincolumn(name="uitvoeringid")}, inversejoincolumns={@joincolumn(name="dirigentid")}) private dirigent dirigent;  @onetoone(cascade=cascadetype.all)   @jointable(name="mfuitvoeringjoin",joincolumns= {@joincolumn(name="uitvoeringid")},inversejoincolumns= {@joincolumn(name="muziekstukid")}) private muziekstuk muziekstuk;   public uitvoering(string datum, string schouwburg, dirigent dirigent, muziekstuk muziekstuk){     this.datum = datum;     this.schouwburg = schouwburg;     this.dirigent = dirigent;     this.muziekstuk= muziekstuk; }  //getters , setters 

sql trace:

hibernate: select dirigent0_.id id1_3_0_, dirigent0_.klasse klasse2_3_0_, dirigent0_.land land3_3_0_,  dirigent0_.naam naam4_3_0_, dirigent0_.richting richting5_3_0_ stud1630651.mfdirigent dirigent0_  dirigent0_.id=? hibernate: select muziekstuk0_.id id1_5_1_, muziekstuk0_.genre genre2_5_1_, muziekstuk0_.titel    titel3_5_1_, muziekstuk0_1_.instrumentid instrume2_0_1_, instrument1_.id id1_4_0_, instrument1_.hoeveelheid   hoeveelh2_4_0_, instrument1_.naam naam3_4_0_ stud1630651.mfmuziekstuk muziekstuk0_ left outer join    mfmuziekstukjoin muziekstuk0_1_ on muziekstuk0_.id=muziekstuk0_1_.muziekstukid left outer join    stud1630651.mfinstrument instrument1_ on muziekstuk0_1_.instrumentid=instrument1_.id muziekstuk0_.id=? hibernate: select hibernate_sequence_uitvoering.nextval dual  hibernate: insert stud1630651.mfuitvoering (datum, schouwburg, id) values (?, ?, ?) hibernate: insert mfuitvoeringjoin (muziekstukid, uitvoeringid) values (?, ?) 

i think using @onetoone annotation in wrong place.
know one-to-one annotation used when 2 tables have the same primary key columns.

one-to-one shows record in table a(parrent) there must 1 , 1 record in table b(child).
in database level achieved having foreign key of in b table, when foreign key column(s) in b table is(are) marked primary key of b.
technically not possible have more 1 one-to-one relation in child table.

in question mfuitvoering child table have owned primary key called id (field sequence values).
2 foreign keys of mfuitvoeringjoin in mfuitvoering representation of manytoone relationship.
need use @manytoone annotation.


Comments

Popular posts from this blog

java.util.scanner - How to read and add only numbers to array from a text file -

rewrite - Trouble with Wordpress multiple custom querystrings -