gpt4 book ai didi

java - 如何在帮助程序中将映射添加到现有的动态类型 - EclipseLink

转载 作者:行者123 更新时间:2023-11-29 09:00:44 25 4
gpt4 key购买 nike

我正在 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());

谁能帮帮我?

最佳答案

尝试在调用 createEntityManagerFactory() 之前添加新字段。

关于java - 如何在帮助程序中将映射添加到现有的动态类型 - EclipseLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17684836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com