我想写我的第一个JPA Web应用程序,我卡住了。我有以下代码:Java持久性 - 创建查询失败
@Stateless
public class TestDAO {
@PersistenceContext(unitName="dbcon")
EntityManager em;
public TestDAO() {
}
public TestCon getData() {
Query qry = em.createQuery("select t from TestCon t");
...
最后一行失败 - “java.lang.NullPointerException”。该TestCon代码:
@Entity
@Table(name = "testcon", schema = "C##test")
public class TestCon {
@Id
@Column(name = "a")
private int a;
@Column(name = "b", length = 20)
private String b;
public String getB() {
return b;
}
}
而且persistence.xml中的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="dbcon" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/jboss/datasources/OracleDS</jta-data-source>
<class>code.TestCon</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
</properties>
</persistence-unit>
</persistence>
任何帮助表示赞赏。
你是否在使用Spring进行依赖注入?你的代码永远不会设置一个EntityManager ... –
不,不使用Spring。实体管理者不是从工厂创建的。它通过@PersistenceContext(unitName =“dbcon”) – user1680859
作为资源从容器注入,因为您可以清楚地看到,它不是... – Antoniossss