Hallo zusammen,
ich arbeite zurzeit mit JPA / Eclipse Link zum direkten Speichern von Objekten in einer Derby-Datenbank. Nun stehe ich vor einem Problem, an dem ich selbst nicht mehr weiterkomme.
Zunächst einmal die relevanten JPA-Klassen (unnötiger Code wurde entfernt):
Bei der Ausführung wird folgende Exception geworfen:
Folglich ist also das Problem, dass der Primary Key von MyClassA sowohl aus einer @EmbeddedId (alle Attribute der Klasse FileId) als auch einer @Id (Attribut id) besteht, was anscheinend (für mich nicht nachvollziehbar) nicht erlaubt ist.
Wer hat eine Idee, wie ich dieses Problem lösen könnte.
Danke im Voraus!
Gruß
XPlayer
ich arbeite zurzeit mit JPA / Eclipse Link zum direkten Speichern von Objekten in einer Derby-Datenbank. Nun stehe ich vor einem Problem, an dem ich selbst nicht mehr weiterkomme.
Zunächst einmal die relevanten JPA-Klassen (unnötiger Code wurde entfernt):
Java:
@Embeddable
public class FileId {
protected FileId() {
}
protected File fileName;
public FileId(File fileName) {
this.fileName = fileName;
}
// Getter und Setter
// diese ID-Klasse soll später um weitere Attribute zur Identifizierung erweitert werden
}
@MappedSuperClass
public abstract class SuperClass {
@EmbeddedId
private FileId fileId;
protected SuperClass() {
}
public SuperClass(FileId fileId) {
this.fileId = fileId;
}
// Getter und Setter
}
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public MyClassA extends SuperClass {
@Id
protected String id;
protected MyClassA() {
}
public MyClassA(String id, FileId fileId) {
super(fileId);
this.id = id;
}
// Getter und Setter
}
@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public MyClassB extends SuperClass {
protected MyClassB() {
}
public MyClassA(FileId fileId) {
super(fileId);
}
// Getter und Setter
}
Bei der Ausführung wird folgende Exception geworfen:
Code:
...
Exception Description: Entity class [class org.example.MyClassA] has both an @EmbdeddedId (on attribute [fileId]) and an @Id (on attribute [id]. Both ID types cannot be specified on the same entity.
...
Folglich ist also das Problem, dass der Primary Key von MyClassA sowohl aus einer @EmbeddedId (alle Attribute der Klasse FileId) als auch einer @Id (Attribut id) besteht, was anscheinend (für mich nicht nachvollziehbar) nicht erlaubt ist.
Wer hat eine Idee, wie ich dieses Problem lösen könnte.
Danke im Voraus!
Gruß
XPlayer
Zuletzt bearbeitet: