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