8 Stimmen

Sequenzen mit dynamischen Entitäten in EclipseLink

Ich versuche, Sequenzen mit dynamischen Entitäten in EclipseLink zum Laufen zu bringen, und ich brauche Hilfe.

Ich definiere meine dynamische Entität wie folgt:

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("default");
    EntityManager em = emf.createEntityManager();

    Session session = JpaHelper.getEntityManager(em).getServerSession();
    DynamicClassLoader dcl = DynamicClassLoader.lookup(session);

    Class<?> testClass = dcl.createDynamicClass("org.persistence.Test");

    JPADynamicTypeBuilder test = new JPADynamicTypeBuilder(testClass, null, "TEST");

    test.addDirectMapping("id", long.class, "T_ID");
    test.setPrimaryKeyFields("T_ID");
    test.addDirectMapping("col1", long.class, "T_COL1");
    test.addDirectMapping("col2", int.class, "T_COL2");
    test.addDirectMapping("col3", String.class, "T_COL3");
    test.addDirectMapping("col4", String.class, "T_COL4");
    test.addDirectMapping("col5", double.class, "T_COL5");
    test.addDirectMapping("col6", double.class, "T_COL6");

    DynamicHelper helper = new JPADynamicHelper(em);
    helper.addTypes(true, true, test.getType());

Ich habe festgestellt, dass alles nach den Vorgaben erstellt wird. Ich habe versucht, in der Dokumentation nachzuschauen, wie man die Datenbanksequenzen verwendet, und bin auf die Methode JPADynamicTypeBuilder.configureSequencing(Sequence, String, String) gestoßen. Aber ich konnte kein Beispiel finden, wie man es macht. Ich habe mit dieser Methode herumgespielt und lande immer bei der Standard-Sequenzierungsstrategie, d. h. einer Tabelle namens SEQUENCE.

Ich habe es mit einer vorkompilierten Entität mit @GeneratedValue und @SequenceGenerator versucht und alles funktioniert einwandfrei, also ist es etwas, was ich mit den dynamischen Entitäten falsch mache.

Weiß jemand, was ich falsch gemacht haben könnte?

Es scheint irrelevant zu sein, aber ich sage trotzdem, dass meine Datenbank Oracle ist.

Vielen Dank im Voraus,

Rui

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X