Hi, ich versuche schon ne ganze Weile eine abstrakte Klasse zu persistieren.
Mein Ziel ist folgendes:
Ich habe eine Entity-Klasse Storage und eine abstrakte Superklasse (FileReceiver) mit MappedSuperclass annotiert.
Dazu dann noch eine weitere Entity (DataFile), die zur Storage-Entity gehört.
Storage extends FileReceiver...
was ich jetzt will, ist später auf ein beliebiges FileReceiver Objekt zuzugreifen und dieses in der Datenbank zu persistieren, bzw. es nur zu updaten. Existieren tun die Objekte in der Datenbank in der regel schon.
Aber das ganze klappt leider nicht. Der Code sieht hier wie folgt aus.
das funktioniert nicht, weil ich den FileReceiver nicht in den Persistenz-Context kriege... was kann ich tun, um das Problem zu lösen?
Mein Ziel ist folgendes:
Ich habe eine Entity-Klasse Storage und eine abstrakte Superklasse (FileReceiver) mit MappedSuperclass annotiert.
Dazu dann noch eine weitere Entity (DataFile), die zur Storage-Entity gehört.
Storage extends FileReceiver...
was ich jetzt will, ist später auf ein beliebiges FileReceiver Objekt zuzugreifen und dieses in der Datenbank zu persistieren, bzw. es nur zu updaten. Existieren tun die Objekte in der Datenbank in der regel schon.
Aber das ganze klappt leider nicht. Der Code sieht hier wie folgt aus.
Java:
public void ChangeAndPersist(FileReceiver fileReceiver, DataFile dataFile)
throws DatabaseInvalidDataSubmittedException, DatabaseConcurrentModificationException {
entityManager = DatabaseManager.getNewEntityManager();
entityManager.getTransaction().begin();
fileReceiver.addDataFile(dataFile);
entityManager.getTransaction().commit();
}
das funktioniert nicht, weil ich den FileReceiver nicht in den Persistenz-Context kriege... was kann ich tun, um das Problem zu lösen?