wie persistiere ich eine abstrakte Superklasse?

Dieses Thema wie persistiere ich eine abstrakte Superklasse? im Forum "Data Tier" wurde erstellt von Goldfish, 26. Mai 2014.

Thema: wie persistiere ich eine abstrakte Superklasse? Hi, ich versuche schon ne ganze Weile eine abstrakte Klasse zu persistieren. Mein Ziel ist folgendes: Ich habe...

  1. 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 das Java-Tutorial weiter. Hier klicken --> (Klick)
  3. stg
    stg
    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. die Klasse ist als MappedSuperclass annotiert. Diese soll keine eigene Tabelle erhalten.
     
  5. hat sich erledigt.
    Ich **** hab zwei verschiedene EntityManager-Objekte verwendet, weshalb es klar ist, dass das Objekt nicht im Kontext enthalten ist... jetzt gehts.
     
  6. Schau dir jetzt hier den Kurs an und lernen Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)