我创建了一个像我的工作论文一样的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>
这是我的singelton类,我想获得entitymanager的i实例
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
哪里错了?
答案 0 :(得分:0)
您的persistence.xml文件需要具有方言属性
另外,如果你使用jpacontainer使用hibernate,你还需要另外两本vaadin解释的东西:每个reqeust模式使用一个实体管理器,并在你的实体提供者上使用hibernate延迟加载委托。如果您需要更多帮助,我会不断更新此答案。