session - One Table to Multiple Table Mapping using Hibernate Annotation -


in case:

rack , slot entities having custom id generators. using unidirectional one-to-one mapping. dimension table hold data autogenerated custom id foreign key multiple tables (rack , slot example here). , schema looks : rack ------> dimension <-----------slot dimension hold data rack , slot table generated id.

here concern when saving data this:-

rack rack = new rack(params); dimension dim = new dimension(params); rack.setdimension(dim); session.save(rack); 

data being saved same autogenerated id in rack , dimension tables.

but when saving data slot table :

slot slot = new slot(params); dimension dim = new dimension(params); slot.setdimension(dim); session.save(slot); 

it showing error message as:-

attempted assign id null one-to-one property: rack

can pass dynamic property name "slot" when saving data slot , dimension , "rack" when saving data rack , dimension.

rack.java

@entity @table(name="tablename") @genericgenerator(name = "customseq", strategy = "customidgenerator") public class rack {   @id   @generatedvalue(generator = "customseq")   @column(name = "uni_id")   private string id;   @onetoone(fetch = fetchtype.lazy, cascade = cascadetype.all)   @primarykeyjoincolumn   private dimension dimension;   // getters , setters } 

slot.java

@entity @genericgenerator(name = "slot_seq", strategy = "com.slot.slotidgenerator") @table(name = "\"slot_info\"") public class slot implements serializable {    @id   @generatedvalue(generator = "slot_seq")   @column(name = "slot_id")   private string slotid;   @column(name = "rack_id")   private string rackid;   @column(name = "element_id")   private string elementid;   @column(name = "sr_no")   private int srno;      @joincolumn(name = "systemid", insertable = false, updatable = false)   @primarykeyjoincolumn   private dimension dimension;   // getters , setters } 

dimension.java

public class dimension implements serializable{   @id   @column(name = "systemid")   @generatedvalue(generator = "foreign")   @genericgenerator(name = "foreign", strategy = "foreign", parameters = {   @parameter(name = "property", value = "slot"),   @parameter(name = "property", value = "rack")})   private string systemid;    @onetoone(mappedby = "dimension", fetch = fetchtype.lazy)   @primarykeyjoincolumn   private rack rack;   @onetoone(mappedby = "dimension", fetch = fetchtype.lazy)   @primarykeyjoincolumn   private slot slot;   // getters , setters } 


Comments

Popular posts from this blog

basic authentication with http post params android -

vb.net - Virtual Keyboard commands -

css - Firefox for ubuntu renders wrong colors -