【发布时间】:2016-01-24 11:12:19
【问题描述】:
我创建了一个 REST 服务项目,通过 DriverManager.getConnection(url,user,pass) 执行 CRUD 操作。
现在我的分配更改为在 Jboss 7.1.1 中定义连接并且可以正常工作(在 Jboss 管理控制台中测试数据源返回肯定结果,并且 sqljdbc 驱动程序在 MS SQL Server Management Studio 的活动监视器中也显示为活动状态)。
我应该使用 EntityManager 来运行我在旧项目中使用的本机查询,而无需生成实体或使用实体编写查询(这用于下一个分配)。
我根据我在研究中发现的内容编写了一个小测试代码,如下:
public class Test {
@PersistenceContext(unitName="InternshipIS") protected EntityManager entityManager;
public void getQuerys(){
String sqlQuery = "SELECT * from InternshipIS.dbo.Employee";
Query q = entityManager.createNativeQuery(sqlQuery);
System.out.println(q.getResultList().get(2));
}
当它到达下一行时,它会抛出 NullPointerException。
Query q = entityManager.createNativeQuery(sqlQuery);
请让我知道我在哪里搞砸了,以及是否需要完整的堆栈跟踪/persistence.xml/standalone.xml 或其他任何内容才能将它们添加到我的帖子中。
PS:这不是一个 Maven 项目。这是一个动态 Web 项目,我在此分配开始时转换为 JPA。
【问题讨论】:
-
EntityManager 为空?任何人在获得 NPE 时应该做的第一件事就是验证哪个变量为空。然后在这个网站上寻找许多其他关于人们没有正确注入 PersistenceContext 的帖子,通常是容器配置。
标签: java sql-server jpa jboss