2017-05-15 6 views
0

エンティティクラス(hbmファイルなしの注釈駆動型)を永続性に動的に追加するという要件があります。プログラムでエンティティを追加するときにMappingNotFound例外が発生する

私はエンティティを動的に追加する以下のアプローチを試しました。

Configuration cfg = new Configuration() 
       .addClass(org.entity.Person.class); 

私はMappingNotFoundExceptionました:マッピング(リソース)が見つかりませんorg.entity.Person.hbm.xml

は、これを行うための他の方法はありますか?

私は多くの投稿を行ってきましたが、私の問題に対する正確な解決策は見つかりませんでした。どんな助けでも大歓迎です。

答えて

2

addClass方法はfoo.bar.Fooという名前 クラスはファイルfoo /バー/ Fooのでマッピングされていること規則を使用してアプリケーションリソースとしてマッピングを読むマッピングファイルのため

を検索します。 hbm.xml はクラスパスリソースとして解決できます。

http://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/cfg/Configuration.html#addClass-java.lang.Class-

あなたは注釈付きクラスを追加したい場合は、例えばaddAnnotatedClass

public Configuration addAnnotatedClass(Class annotatedClass) 
// Read metadata from the annotations associated with this class. 
Parameters: 
    annotatedClass - The class containing annotations 
Returns: 
    this (for method chaining) 

を使用する必要があります。

Configuration cfg = new Configuration() 
      .addAnnotatedClass(org.entity.Person.class); 
関連する問題