2011-07-21 14 views
0

EntityManagerFactoryを作成するときに、既知のJPAエンティティをプログラムで追加します。 は、だから、私はまたaddPackage()さんを設定する前に()を呼び出してみましたEjb3Configuration.addPackage()がエンティティを見つけません。

Ejb3Configuration ejbConf = new Ejb3Configuration(); 
ejbConf.configure("TestPU", null); 
ejbConf.addPackage("org.jboss.jawabot.irc.ent"); 
ejbConf.addPackage("org.jboss.jawabot.irc.model"); 
emf = ejbConf.buildEntityManagerFactory(); 

このシーケンス(休止3.6)を持っています。 パッケージを追加しても問題ありません。 しかし、Hibernateはエンティティを見つけません。私はそれを持続すると、私が手:

不明なエンティティ:間違って何org.jboss.jawabot.irc.model.IrcMessage

を? Hivernateにこれらのパッケージからエンティティを認識させるにはどうすればよいですか?

おかげで、 Ondra

更新:プロジェクトはhereです。
私はそれでいくつかのトリックを試しているので、ちょっと乱雑です。

アプリの「コア」モジュール(jar)のエンティティが取得されます。それは実体だロードする

+1

'IrcMessage'クラスを表示できますか?それは '@ Entity'アノテーションを持っていますか? – Behrang

+1

また、 'addAnnotatedClass'を使ってクラスを追加して、失敗したかどうかを確認してください。 – Behrang

+0

Behrang、 'addAnnotatedClass()'で動作します。奇妙な。つまり、Hibernateはパッケージをスキャンできません。私はデバッグして伝えます。 –

答えて

0

anwserは、addPackage()の目的は唯一のアカウントに与えられたパッケージの注釈を取るために休止状態を伝えることですされ、ない

さらに、は、EntityManagerFactoryBuilderを支持して4.0で推奨されません。https://hibernate.onjira.com/browse/HHH-6159を参照してください。

+0

ところで、byデフォルトでは '@ Entity'アノテートされたすべてのクラスはJavaEE 5/6コンテナ内で検出されます。コンテナなどの外にアプリをデプロイしていますか? – Behrang

+0

はい、私はスタンドアロンのアプリを持っています。 –

関連する問題