在一个 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在此链接中有一个答案, 但我的生成策略没有,我的实体是由 netbeans 从数据库生成的。我需要一些专家咨询。提前致谢
我删除了
@Table(name="EFA_FUNCTIONS")
来自 Entity 顶部的注释,但 @Entity 仍然存在。错误消失了,但查询开始为
INSERT INTO EFAFUNCTIONS
没有下划线,但我需要
INSERT INTO EFA_FUNCTIONS
,因为它没有插入数据。为什么eclipselink为@Table注释给出错误,尽管没有像EFAFUNCTIONS这样的表,为什么它没有给出任何错误