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