Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在helper-EclipseLink中向现有dynamictype添加映射_Java_Dynamic_Eclipselink_Entitymanager - Fatal编程技术网

Java 如何在helper-EclipseLink中向现有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())

我正在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());
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()之前,请尝试添加新字段