wie persistiere ich eine abstrakte Superklasse?

Diskutiere wie persistiere ich eine abstrakte Superklasse? im Data Tier Forum; Hi, ich versuche schon ne ganze Weile eine abstrakte Klasse zu persistieren. Mein Ziel ist folgendes: Ich habe eine Entity-Klasse Storage und...

  1. Goldfish
    Goldfish Mitglied
    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.

    Code (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?
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. stg
    stg Bekanntes Mitglied
    Ist deine abstrakte Klasse auch als @Entity annotiert? Dann kannst du doch einfach deinen FileReceiver in die DB mergen.. Wenn ich dein Problem falsch verstanden habe, dann frag einfach nochmal :)
     
  4. Goldfish
    Goldfish Mitglied
    die Klasse ist als MappedSuperclass annotiert. Diese soll keine eigene Tabelle erhalten.
     
  5. Goldfish
    Goldfish Mitglied
    hat sich erledigt.
    Ich **** hab zwei verschiedene EntityManager-Objekte verwendet, weshalb es klar ist, dass das Objekt nicht im Kontext enthalten ist... jetzt gehts.
     
Die Seite wird geladen...

wie persistiere ich eine abstrakte Superklasse? - Ähnliche Themen

NPE beim Persistieren einer Entität
NPE beim Persistieren einer Entität im Forum Data Tier
Persistieren mit JTA funktioniert nicht
Persistieren mit JTA funktioniert nicht im Forum Data Tier
Mehrere "selectOne" persistieren
Mehrere "selectOne" persistieren im Forum Web Tier
Arrays persistieren mit JPA
Arrays persistieren mit JPA im Forum Data Tier
DAO mit Komposition persistieren?
DAO mit Komposition persistieren? im Forum Allgemeines EE
Thema: wie persistiere ich eine abstrakte Superklasse?