我在使用動態實體獲取序列以在EclipseLink中工作,我需要一些幫助。在EclipseLink中使用動態實體的序列
我定義我的動態實體類似如下:
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());
我注意到,一切都按照指定的創建。我試圖尋找一些文檔如何使用數據庫序列,我注意到了JPADynamicTypeBuilder.configureSequencing(Sequence,String,String)方法。但是我找不到如何去做的例子。我玩弄了這種方法,並總是使用默認的排序策略,即一個名爲SEQUENCE的表。
我試着用預編譯的實體使用@GeneratedValue和@SequenceGenerator,一切正常,所以這是我做錯了動態實體的東西。
有誰知道我可能做錯了什麼?
這似乎並不重要,但我總是告訴我的數據庫是Oracle。
由於提前,
銳