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.