首页 文章

JBoss 7.1数据源JDBC 4.1 Java持久性 - 竞赛

提问于
浏览
0

我有一个EJB-Project和一个JBoss 7.1服务器和一个PostgreSQL数据库 . 我想通过PersistenceContext获取一个Entitymanager,如下所示:

@PersistenceContext(name="PlayerService",unitName="PlayerService")
private EntityManager em;

persistence.xml中:

<persistence-unit name="PlayerService" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
  <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
...

我启动JBoss服务器,进入管理控制台并配置JDBC数据源 . 我将postgresql-9.3-1101.jdbc41.jar复制到服务器的deployment-Folder中,因此我可以在创建数据源时选择该驱动程序 . 数据源名称是PlayerService,JNDI路径是java:jboss / PlayerService . 我还将数据源作为JPA子系统中的默认数据源启用 .

em.getTransaction().begin();

仍然会抛出一个空指针,我猜是因为我尝试从服务器外部访问PersistenceContext(来自带有单独主函数的java类进行测试) . 我该怎么做才能让它发挥作用 . 它可以在服务器上部署的项目中运行吗?我有一种感觉,我错过了最后一步 .

1 回答

  • 0

    我尝试从服务器外部访问PersistenceContext

    在单元测试中,您需要自己初始化EntityManager .

    EntityManagerFactory factory = Persistence.createEntityManagerFactory("PlayerService");
    EntityManager em = factory.createEntityManager();
    

相关问题