我有一个EJB项目示例,它使用@PersistenceContext来连接到我的数据库。 这工作正常,但由于我的新项目不是EJB,我必须考虑另一种方法。 所以我想出了类似的东西:
EntityManagerFactory entityFactory = Persistence.createEntityManagerFactory("avaliacaoneomind");
EntityManager em = entityFactory.createEntityManager();
但是当我这样做时,我收到了这个错误:
javax.persistence.PersistenceException:没有名为avaliacaoneomind的EntityManager的持久性提供程序
我知道我的persistence.xml是正确的并且在正确的位置,因为当我使用@PersistenceContext(name="avaliacaoneomind")
作为测试时,我的表是在我的数据库中自动创建的。如果我从代码中删除@PersistenceContext,则表格不会被创建。
我该如何解决这个错误?我尝试了所有可能找到的链接,但似乎没有一个能解决我的问题。
Bellow是我的persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence>
<!--Nome do contexto que configura o Provedor de Persistência -->
<persistence-unit name="avaliacaoneomind">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/avaliacaoneomind</jta-data-source>
<properties>
<property name="eclipselink.ddl-generation" value="create-or-extend-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="both" />
</properties>
</persistence-unit>
</persistence>
答案 0 :(得分:0)
您可以通过JNDI查找实现entityManager
select t.*
from t
where t.trans_date = (select max(t2.trans_date)
from t t2
where t2.till_id = t.till_id
);