JPA、jsf2.0 Hibernate プロジェクトに取り組んでいます。これは、ここで見ることができるプライムフェイス カレンダーによるユーザーのアクションの管理です。
ユーザーのアクションを取得してカレンダーに表示することができましたが、新しいアクションを追加したいときはうまくいくようです:エラーメッセージはありませんが、実際にはアクションはデータベースに追加されていません. persist メソッドが機能していないようです。エラー メッセージが返されないため、その理由を確認するために何をすればよいかわかりません。
これらの 2 つのアクション (表示と追加) の 2 つの関数をここに示します。
アクションを追加する方法(動作しません)
public void creerAction(Action action){
Date date = action.getDateAction();
action.setDateAction(date);
EntityManagerFactory emf = null;
try{
emf = Persistence.createEntityManagerFactory("GA2010-ejbPU-dev");
em = emf.createEntityManager();
em.persist(action);
FacesMessage message = new FacesMessage("Action " + action.getTexteAction()+ " ajouté avec succès");
FacesContext.getCurrentInstance().addMessage(null, message);
}catch(PersistenceException e){
System.out.println(e.getMessage());
}
}
そして、ユーザーのすべてのアクションを取得するメソッド (動作します)
public List<Action> getAllAction(){
HttpSession sess = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(true);
String codeUser = (String) sess.getAttribute("codeUser");
EntityManagerFactory emf = null;
try{
emf = Persistence.createEntityManagerFactory("GA2010-ejbPU-dev");
em = emf.createEntityManager();
Query requete = em.createQuery(SELECT_ALL_ACTION);
requete.setParameter("codeUtilisateur", codeUser);
this.allAction= requete.getResultList();
}catch(Exception e){
this.message = new FacesMessage(e.getMessage()) ;
FacesContext.getCurrentInstance().addMessage( null, message );
}
return allAction;
}
そして、これが私のユニット永続性の宣言です
<persistence-unit name="GA2010-ejbPU-dev" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>dev</jta-data-source>
<class>entities.Utilisateur</class>
<class>entities.Action</class>
<properties>
<property name="eclipselink.target-server" value="SunAS9"/>
<property name="eclipselink.logging.level" value="FINE"/>
<property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
<property name="eclipselink.ddl-generation.output-mode" value="sql-script"/>
<property name="eclipselink.application-location" value="C:/tmp"/>
</properties>
persist が保持されない理由と、エラー メッセージが表示されない理由を確認するにはどうすればよいですか?