Java 如何在helper-EclipseLink中向现有dynamictype添加映射
我正在EclipseLink中创建一个动态类,但创建后无法向我的类添加新字段 当我添加一个新字段时,eclipselink会在表中创建一列,但当尝试在该列中设置值时,EntityManager无法保存并将其置为NULL 在JPADynamicHelper中添加新字段后,如何将其添加到DynamicType中Java 如何在helper-EclipseLink中向现有dynamictype添加映射,java,dynamic,eclipselink,entitymanager,Java,Dynamic,Eclipselink,Entitymanager,我正在EclipseLink中创建一个动态类,但创建后无法向我的类添加新字段 当我添加一个新字段时,eclipselink会在表中创建一列,但当尝试在该列中设置值时,EntityManager无法保存并将其置为NULL 在JPADynamicHelper中添加新字段后,如何将其添加到DynamicType中 DynamicClassLoader dcl = new DynamicClassLoader(Thread.currentThread().getContextClassLoader())
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());
DynamicClassLoader dcl=新的DynamicClassLoader(Thread.currentThread().getContextClassLoader());
类exportss=dcl.createDynamicClass(packagePrefix+“示例”);
JPADynamicTypeBuilder exBuilder=新的JPADynamicTypeBuilder(doClass,null,“示例”);
//配置builber
exBuilder.setPrimaryKeyFields(“ID”);
addDirectMapping(“id”,int.class,“id”);
addDirectMapping(“name”,String.class,“name”);
//配置描述符
ClassDescriptor exDescriptor=exBuilder.getType().getDescriptor();
//配置序列id
exBuilder.configureSequencing(“动态顺序”、“ID”);
//实体管理工厂
emf=createEntityManagerFactory(dcl,“默认”);
JPADynamicHelper=新的JPADynamicHelper(emf);
//这里我添加了helper类型
addTypes(true,true,exBuilder.getType());
//创建表和关系
新SchemaManager(helper.getSession()).extendDefaultTables(true);
//添加新字段
addDirectMapping(“id”,int.class,“id”);
//在这里,我再次添加助手,但不添加
addTypes(true,true,exBuilder.getType());
有人能帮我吗?在调用createEntityManagerFactory()之前,请尝试添加新字段