2016-04-15 95 views
3

Maven execプラグインでJavaを実行しようとしましたが、エラーCaused by: org.hibernate.UnknownEntityTypeException: Unable to locate persister: my.biz.CoolEntityが発生しています。私は最終的にハッキーな修正を見つける前に、いくつかの失敗したソリューションを試しました。ハッキーな修正に基づいて、私は問題がランタイムクラスパスエラーであると信じています。Hibernateエラー "persististerを見つけることができません"

私はハックフィックスのように、必要なファイルを所定の場所にコピーすることなく、問題に対処する方法を教えてくれる回答を探しています。

背景

私は、Hibernate 5.0.1.Final時に依存関係だけでなく、他のプロジェクト "プロジェクトB" を持ってMavenプロジェクト "プロジェクトA" を持っています。プロジェクトBには、my.biz.CoolEntityを含むJPAエンティティクラスが含まれています。

通常、すべてを影付きのJARに組み込み、問題なく実行します。 Hibernateの問題

は最近、私はMavenのexec:java目標を使用し始めたが、Hibernateの問題である表面上のものに実行しています。私はmvn exec:java -DmainClass=my.biz.CoolEntityを実行すると、私はこのエラーを取得する:

Caused by: org.hibernate.UnknownEntityTypeException: Unable to locate persister: my.biz.CoolEntity 
     at org.hibernate.internal.SessionFactoryImpl.locateEntityPersister(SessionFactoryImpl.java:792) ~[hibernate-core-5.0.1.Fi 
nal.jar:5.0.1.Final] 
     at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2641) ~[hibernate-core-5.0.1.Final.jar:5.0.1 
.Final] 
     at org.hibernate.internal.SessionImpl.access$2500(SessionImpl.java:164) ~[hibernate-core-5.0.1.Final.jar:5.0.1.Final] 
     at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2579) ~[hibernate-core-5.0.1.Final 
.jar:5.0.1.Final] 
     at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2566) ~[hibernate-core-5.0.1.Final 
.jar:5.0.1.Final] 
     at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1044) ~[hibernate-core-5.0.1.Final.jar:5.0.1.Final] 
     at org.hibernate.internal.SessionImpl.get(SessionImpl.java:955) ~[hibernate-core-5.0.1.Final.jar:5.0.1.Final] 
     at org.hibernate.jpa.spi.AbstractEntityManagerImpl.find(AbstractEntityManagerImpl.java:1075) ~[hibernate-entitymanager-5. 
0.1.Final.jar:5.0.1.Final] 

失敗した試み

私は、execプラグインの<additionalClasspathElements><includePluginDependencies>を利用してみました。第1の解決策は全く異なる結果をもたらさず、第2の解決策はコンパイル時エラーを生じた。エンティティが別の瓶に居住している場合、プロジェクトA.

答えて

0

にプロジェクトBからコンパイルされたクラスをコピーし、あなたがそれを含める必要がありました何を私のために働くことになった

ハック修正

persistence.xml。 <jar-file>entities-packaged.jar</jar-file>。別のオプションは、我々は休止状態5瓶を使用する場合は、その後、我々は

org.hibernate.UnknownEntityTypeException: Unable to locate persister".

を取得here

0

を説明している私はちょうど5から4に休止jarファイルのバージョンを変更して、すべてが大丈夫でした。 マッピング後もHibernate 5はエンティティクラスを特定しません。

関連する問題