Hallo allerseits
anbei ein vereinfachtes Model meines Problems:
Folgendes Problem:
Ich möchte beim speichern die Tabelle Ordner automatisch befüllen lassen. Hier soll jedoch nicht für jedes Datei Entity ein Ordner Entity erstellt werden sondern nur ein Ordner für beide Entities dieser ja identisch für beide ist.
Kurz:
Falls es bereits ein Foldereintrag gibt soll auf diesen referenziert werden, falls nicht soll ein neuer Eintrag erstellt werden. In der Tabelle Datei soll jeweils nur die Id des Ordners als Referenz gespeichert werden.
Wie muss ich mein Ordner anotieren damit das oben genannte Problem abgedeckt wird?
anbei ein vereinfachtes Model meines Problems:
Java:
@Entity
public class Datei {
public Datei(String filename, String folder) {
this.filename = filename;
this.ordner = new Ordner(folder);
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@NotNull
private String filename;
@NotNull
@OneToOne
private Ordner ordner;
// ... getter & setter
}
Java:
@Entity
public class Ordner {
public Ordner(String folder) {
directory = folder;
}
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@NotNull
private String directory;
// ... getter & setter
}
Java:
@Inject EntityManager em;
public void persist(){
Datei file = new Datei("Datei.txt", "C:\\");
Datei file2 = new Datei("File.txt", "C:\\");
em.persist(file);
em.persist(file2);
}
Folgendes Problem:
Ich möchte beim speichern die Tabelle Ordner automatisch befüllen lassen. Hier soll jedoch nicht für jedes Datei Entity ein Ordner Entity erstellt werden sondern nur ein Ordner für beide Entities dieser ja identisch für beide ist.
Kurz:
Falls es bereits ein Foldereintrag gibt soll auf diesen referenziert werden, falls nicht soll ein neuer Eintrag erstellt werden. In der Tabelle Datei soll jeweils nur die Id des Ordners als Referenz gespeichert werden.
Wie muss ich mein Ordner anotieren damit das oben genannte Problem abgedeckt wird?