2010-12-01 6 views
0

は私が休止状態の初心者やオブジェクトを永続化しようとしたときにこのエラーを受けたイムよ>不明のエンティティを:org.apache.struts.register.model.EventHibernateマッピングエラー -</p> <p>エラー - - 不明実体

- 私の hibernate.cfg.xml

は、私は私のマッピング、

<mapping class="org.apache.struts.register.model.Event"/>

マイイベントクラスを定義します

EventDAO -

package dao; 


import org.apache.struts.register.model.Event; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.Transaction; 


public class EventDAO { 

    public static boolean registerEvent(Event u) { 

     SessionFactory sf = HibernateUtil.getSessionFactory(); 
     Transaction t = null; 
     try { 
     Session s = sf.openSession(); 
     t = s.beginTransaction(); // start a new transaction 
     s.persist(u); 
     t.commit(); // commit transaction 
     return true; 
     } 
     catch(Exception ex) { 
      System.err.println("Error -->" + ex.getMessage()); 
      if (t!=null) t.rollback(); // rollback transaction on exception 
      return false; 
     } 
    } 
} 

System.err.println("Error -->" + ex.getMessage())は、例外をスローラインです。

ありがとうございました。

+1

あなたのコードを他の誰かのパッケージに入れるのは、一般に悪い習慣と考えられます。したがって、実際にstrutsプロジェクトで作業しない限り、 'org.apache.struts.register.model'を使用しないでください。 – Qwerky

答えて

5
import org.hibernate.annotations.Entity; 

ハイバネート@Entityは、エンティティを発見するのに十分ではありません。代わりにjavax.persistence.Entityを使用してください。

See here:org.hibernate.annotations.Entityが代わるものではありません@

javax.persistence.Entity @は、まだ必須です。

+0

それは、ありがとう、 –

+0

私にも働いた:) – Venkat

1

エラーは、Hibernateが約org.apache.struts.register.model.Eventを知らないことを意味します。あなたの設定ファイルにエラーがあるか、またはファイルをロードしていない状態で休止状態になっています(間違った場所にあるか、同じ名前のファイルが2つあるなど)。

DEBUGレベルでロギングを有効にすると、Hibernateがロードするファイルとマップするタイプを確認できます。

System.err.println("Error -->" + ex.getMessage());も使用しないでください。これは多くの有用な情報を隠す。デバッグにはex.printStackTrace()を使用し、出力を保持する場合はlog.error("Can't register event "+u, ex)を使用してください。

関連する問題