【发布时间】:2013-05-13 14:19:56
【问题描述】:
在一个 JSF 2.1 - Spring 3.1 集成项目中。我正在尝试在我的项目中使用 eclipselink 2.3.2、Glassfish 3.1.2 和 Maven 通过容器处理事务,并使用 Netbeans IDE 7.2。
在服务层,我通过下面的代码注入了实体管理器,在调试时似乎没问题。
@Inject
public void setEntityManager() {
EntityManagerFactory emfactory =Persistence.createEntityManagerFactory
("E_DefterManagementPU");
this.em = emfactory.createEntityManager();
但是在我填充了名为 EfaFunctions 的实体并尝试坚持使用
em.persist(EfaFunctions);
它给出了这个错误
java.lang.IllegalArgumentException: Object: org.eclipse.persistence.internal.jpa.EntityManagerImpl@599ebbf6
is not a known entity type.
但是在 **persistence.xml ** 我有以下节点
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>EFA</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
我的实体项目位置是 com.edefter.entity.EfaFunctions ;不是错误指定的位置。实际上有一个答案由 Pascal in this link 但我的生成策略没有,我的实体是由 netbeans 从数据库生成的。我需要一些专家的建议。提前致谢
我删除了
@Table(name="EFA_FUNCTIONS")
来自 Entity 顶部的注释,但 @Entity 仍然存在。 错误消失了,但查询开始为
INSERT INTO EFAFUNCTIONS
没有下划线,但我需要
INSERT INTO EFA_FUNCTIONS
,因为它没有插入数据。为什么 eclipselink 为 @Table 注释给出错误,尽管没有像 EFAFUNCTIONS 这样的表,为什么它没有给出任何错误
【问题讨论】:
标签: jpa dependency-injection eclipselink entitymanager