【问题标题】:Vaadin JPAContainer doesn't workVaadin JPAContainer 不起作用
【发布时间】:2013-06-14 10:09:27
【问题描述】:

我创建了一个 Web 应用程序,就像我的工作论文一样。此应用程序使用了整个堆栈 java EE 6:JPA2、EJB、JSF、RichFaces....

现在我正在尝试将我的应用程序的 UI 从 RichFaces 更改为 Vaadin。第一个问题始于使用 JPA 容器。我无法获取 entitymanager 的实例。

这是我的 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="primary">

  <jta-data-source>java:jboss/VaadinDS</jta-data-source>

  <class>org.mypackage.entity.Utente</class>
  <class>org.mypackage.entity.Indirizzo</class>
  <class>org.mypackage.entity.Paese</class>

  <properties>
     <!-- Properties for Hibernate -->
     <property name="hibernate.hbm2ddl.auto" value="create" />
     <property name="hibernate.show_sql" value="false" />
  </properties>
 </persistence-unit>
</persistence>

这是我想要获取 entitymanager 的 i 实例的 singelton 类

public class Utility {

private static EntityManager entityManager;

public Utility() {
    // TODO Auto-generated constructor stub
}

public static EntityManager getInstance(){

    if(entityManager == null)
        entityManager = JPAContainerFactory.createEntityManagerForPersistenceUnit("primary");

    return entityManager;

}
 }

但不起作用,我总是显示以下错误:

[com.vaadin.server.DefaultErrorHandler] (http-localhost-127.0.0.1-8080-1) : java.lang.NullPointerException

我哪里错了?

【问题讨论】:

标签: java jpa vaadin


【解决方案1】:

你的 persistence.xml 文件需要有一个方言属性

此外,如果您使用带有 jpacontainer 的 hibernate,您还需要 vaadin 书中解释的其他 2 件事:每个请求模式使用一个实体管理器,以及在您的实体提供程序上使用休眠延迟加载委托。如果您需要更多帮助,我会不断更新此答案。

【讨论】:

    猜你喜欢
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-06
    相关资源
    最近更新 更多