Ich habe zwei Entitäten:Hibernate Einsatz Kaskade nicht fremd Einfügen Schlüssel
@Entity
public class File
.......
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@OneToMany(fetch=FetchType.LAZY, mappedBy="file", cascade=CascadeType.ALL)
private List<Tag> tags;
.......
OTHER PROPERTIES
.......
@Entity
public class Tag
.......
@Id @GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@ManyToOne
@JoinColumn(name="file_id")
private File file;
@Column
private String tag;
.......
OTHER PROPERTIES
.......
Ich versuche, in die Datei eingefügt werden soll (und Tag später), indem Sie folgendermaßen vorgehen:
File file = new File();
Tag tag = new Tag();
tag.setTag("tag1");
Tag2 tag2 = new Tag();
tag2.setTag("tag2");
List<Tag> tags = new ArrayList<Tag>();
tags.add(tag);
tags.add(tag2);
file.setTags(tags);
---Add other file attributes here---
ich dann bin Einfügen die Datei in meinem DAO:
sessionFactory.getCurrentSession().saveOrUpdate(file);
in meinen Logs ich einen Einsatz in meine „Datei“ Tisch und 2 Einsätze in meinen Tag zu sehen Tabelle jedoch ist der Fremdschlüssel in meiner Tag-Tabelle, die auf meine Dateitabelle (Datei-ID) verweist, NULL.
Was könnte ich möglicherweise falsch machen?
Danke, arbeitete diese. Ich dachte wirklich aus irgendeinem Grund, dass Hibernate die Annahme für mich machen würde, dass ich wollte, dass Tag mit meinen Dateien aktualisiert wird, da ich die Beziehung auf beiden Seiten kommentiert hatte. –
Der Link existiert nicht mehr :(Sie können eine andere Quelle angeben? – Filipe
Ich habe die Antwort geändert, um auf die aktuellste Version zu zeigen. – jpkrohling