EclipseLink で動的クラスを作成していますが、作成後にクラスに新しいフィールドを追加できません。
新しいフィールドを追加すると、eclipselink はテーブルに列を作成しますが、この列に値を設定しようとすると、EntityManager は対処できず、NULL を設定します。
JPADynamicHelper に追加した後、DynamicType に新しいフィールドを追加するにはどうすればよいですか?
DynamicClassLoader dcl = new DynamicClassLoader(Thread.currentThread().getContextClassLoader());
Class<?> exClass= dcl.createDynamicClass(packagePrefix + "Example");
JPADynamicTypeBuilder exBuilder= new JPADynamicTypeBuilder(doClass, null, "Example");
// configure builber
exBuilder.setPrimaryKeyFields("ID");
exBuilder.addDirectMapping("id", int.class, "ID");
exBuilder.addDirectMapping("name", String.class, "NAME");
// configure descriptor
ClassDescriptor exDescriptor = exBuilder.getType().getDescriptor();
//configure sequence id
exBuilder.configureSequencing("DYNAMIC_SEQ", "ID");
// EntityManagerFactory
emf = createEntityManagerFactory(dcl, "default");
JPADynamicHelper helper = new JPADynamicHelper(emf);
//Here I add the helper type
helper.addTypes(true, true, exBuilder.getType());
// Create tables and relationship
new SchemaManager(helper.getSession()).extendDefaultTables(true);
//Adding a new field
exBuilder.addDirectMapping("id", int.class, "ID");
//here I add the helper again but do not add
helper.addTypes(true, true, exBuilder.getType());
誰でも私を助けることができますか?