Ciao,
ho iniziato ad usare hibernate in maniera molto semplice, ora si complicano un pò le cose e mi sono bloccato nell'uso dei composite id.
Il mio problema è mappare una relazione tra due tabelle che hanno come chiave due campi del db. Mi spiego meglio:
la tabella T10 ha come chiave id e cod
la tabella T10I è una tabella figlia di T10, ha come chiabe id,cod e num.
la relazione tra T10 e T10I è una relazione uno a molti con in chiave id e cod.
Fino a quando avevo in chiave solo id non avevo problemi, ma ora ho in chiave anche cod e non riesco a mapparle nel modo corretto.
codice:<class name="T10" table="T10"> <composite-id mapped="false" unsaved-value="undefined"> <key-property column="id" name="id" type="string"/> <key-property column="cod" name="cod" type="string"/> </composite-id> ... altre proprietà ... <set cascade="save-update" inverse="true" lazy="false" name="ob" order-by="num"> <key not-null="true"> <column name="id"/> <column name="cod"/> </key> <one-to-many class="T10I"/> </set> </class>codice:<class name="T10I" table="T10I"> <composite-id mapped="false" unsaved-value="undefined"> <key-many-to-one name="id" type="string"> <column name="id"/> <column name="cod"/> </key-many-to-one> <key-property column="num" name="num" type="string"/> <key-property column="name" name="name" type="long"/> </composite-id> ... altre proprietà ... </class>codice:public class T10 implements Serializable{ public Set ob; public void setob(Set ob) { this.ob= ob; } public Set getob() { return ob; } private String id; public String getid() { return id; } public void setid(String id) { this.id = id; } private String cod; public String getcod() { return cod; } public void setcod(String cod) { this.cod = cod; } ...altre proprietà }Questi sono i java e gli xml del mapping.codice:public class T10I implements Serializable{ public T10I() {} private T10 T10; public T10 getT10() { return T10; } public void setT10(T10 T10) { this.T10 = T10; } private String id; public String getid() {return id; } public void setid(String id) {this.id = id; } private String cod; public String getcod() {return cod; } public void setcod(String cod) {this.cod = cod; } private String name; public String getname() {return name; } public void setname(String name) {this.name = name; } private long num; public long getnum() {return num; } public void setnum(long num) {this.num = num; } }
Quando eseguo il progetto mi va in errore.
Inoltre volevo sapere come fare il get dall'hibernateTemplate quando faccio la query per tirare su tutto l'oggetto con il composite-id.
Grazie
Ciao

Rispondi quotando