我想在创建EntityManagerFactory时以编程方式添加已知的JPA实体。 所以我有这个序列(Hibernate 3.6)
Ejb3Configuration ejbConf = new Ejb3Configuration();
ejbConf.configure("TestPU", null);
ejbConf.addPackage("org.jboss.jawabot.irc.ent");
ejbConf.addPackage("org.jboss.jawabot.irc.model");
emf = ejbConf.buildEntityManagerFactory();
我也尝试在configure()之前调用addPackage()。 添加包很好。 但是,Hibernate没有找到实体。当我坚持下去时,我得到:
未知实体:org.jboss.jawabot.irc.model.IrcMessage
怎么了?如何让Hbernate识别这些包中的实体?
谢谢, Ondra
更新:项目为here 有点乱,因为我在尝试一些技巧。
请注意,应用程序的“核心”模块(jar)中的实体将被选中。
答案 0 :(得分:0)
anwser是,addPackage()
的目的只是告诉Hibernate考虑给定包的注释,不来加载它的实体。
更多,Ejb3Configuration
将弃用4.0,而不是EntityManagerFactoryBuilder
,请参阅https://hibernate.onjira.com/browse/HHH-6159。