Supponiamo semplificando di avere una tabella
(table1)
ID - nome
dove id è autoincrement
Una seconda tabella dove
(table2)
suoID - blabla - ID
dove ovviamente ID è foreignkey di ID ( ONupdate, onDelete = CASCADE)
Ora usando netbeans io creo delle Entity Classes dal db.
E fin qua tutto ok.
Uno dei metodi di table1 che mi viene generato è :
Codice PHP:
public void setTable2Collection(Collection<Table2> table2Collection) {
this.table2Collection = table2Collection;
}
bhè qua io associo la mia collection di oggetti di classe table2 ad un oggetto di classe table1 funziona tutto.
Ora..se io faccio bel PERSIST(oggettotable1) lui mi dice quando inserisce pure le righe nella table2 l'table2.ID non può essere nullo.
Ovvio! Viene generato da db!
Ho provasto a mettere
Codice PHP:
@Id
-> @GeneratedValue
@Column(name = "ID", nullable = false)
private Integer id;
Ma non cambia un ciufolo.
Cioè mi sembrerebbe brutto levare il foreign keys e farlo a mano facendo persistere l'oggetto della tabella1, e andando poi a leggere il suo id.
Ora so che sicuramente c'è modo.
Tra le altre cose non capisco perchè tra i metodi di table2 c'è :
Codice PHP:
public void setId(Table1 id) {
this.id = id;
}
Quindi non è più un integer, ma un oggetto...
Vabbè so che c'è un modo ma non riesco a trovarlo chiaramente in internet...
@PostPersist ?