1
我是jpa和jsf的新手。我正在尝试使用jpa和jsf开发简单的Web应用程序。我已经安装了mysql并配置了Glassfish来使用它。我创建了一个小项目,它由一个Managed Bean和一个JPA实体组成。在部署时,数据库中的表成功创建,因此与数据库的连接正常。但我有一个问题,我cant't坚持任何实体在Managed Bean的方法:JPA:不能坚持托管Bean中的实体
@ManagedBean(name = "data")
@SessionScoped
public class Data implements Serializable {
@PersistenceUnit(unitName = "JChatPU")
EntityManagerFactory emf;
@Resource
UserTransaction utx;
public Data() {
}
public void add() {
EntityManager em = emf.createEntityManager();
try {
utx.begin();
JChatUser u = new JChatUser();
em.persist(u);
utx.commit();
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}
我的持久化单元配置在persistence.xml中:
<persistence-unit name="JChatPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/jchatdb</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
</properties>
</persistence-unit>
但我可以成功地从EJB坚持。那么,如何坚持从托管bean的方法?
感谢您的未来答案。
你不得到任何异常? – Salem
不,没有例外! – tegoo
您已确认调用了bean方法? – kolossus