Hallo Leute.
Ich habe eine Abstrakte Klasse
von dieser erstelle ich mehrere konkrete Klassen. Zwei dieser konkreten Klassen beinhalten 1:1 Beziehungen zu den selben Klassen
und:
Beim erstellen des Objekts werden die ID s durch die setter an die andere Klasse übergeben.
allerdings will die JPA auch die ID dem Objekt der Klasse zuweisen das nicht erstellt werden soll. Ergebnis ist der oben genannte Fehler. Wie kann ich das vermeiden / verhindern ?
Ich habe eine Abstrakte Klasse
Code:
public abstract class ReefTankAbstract {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "reefTankIDgenerator")
@SequenceGenerator(name = "reefTankIDgenerator", sequenceName = "reefTankIDSequenz", allocationSize = 10, initialValue = 10)
@Column(name = "reefTankid")
private long id;
}
Code:
public class ReefTankWithSump extends ReefTankAbstract {
@OneToOne(mappedBy = "reefTankWithSump", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
private Sand sand;
@OneToOne(mappedBy = "reefTankWithSump", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
private Rock rock;
Code:
public class ReefTankOnlySandRocks extends ReefTankAbstract {
@OneToOne(mappedBy = "reefTankOnlySandRocks", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
private Sand sand;
@OneToOne(mappedBy = "reefTankOnlySandRocks", cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
private Rock rock;
Code:
sand.setReefTankOnlySandRocks(reefTank);