1

JBoss4 から JBoss5 への移行時に発生する問題を修正するためのヘルプを探しています。VFS の Hibernate サポートに問題があるようです (JBoss5 で導入)。

モジュール性の理由から、複数のアーティファクトには持続性ユニット (pu) 宣言があります。展開中に、それらすべてが次のような単一の宣言にマージされます

Processing PersistenceUnitInfo [
    name: pu
    persistence provider classname: null
    classloader: org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader@7a74fa
    Temporary classloader: org.springframework.instrument.classloading.SimpleThrowawayClassLoader@432f0a33
    excludeUnlistedClasses: false
    JTA datasource: com.xyz.jdbc.datasource.DelegatingDataSource@4546bcba
    Non JTA datasource: com.xyz.jdbc.datasource.DelegatingDataSource@4546bcba
    Transaction type: JTA
    PU root URL: vfszip:/<path>/<jar>/
    Jar files URLs [
        vfsfile:/<path>/<exploded jar>/
        vfsfile:/<path>/<exploded jar>/
        vfsfile:/<path>/<exploded jar>/
        vfszip:/<path>/<jar>/
        vfszip:/<path>/<jar>/
        vfszip:/<path>/<jar>/]
    Managed classes names []
    Mapping files names []
    Properties []

デバッグを有効にすると、展開された jar が注釈のためにスキャンされないことがわかります

[org.hibernate.ejb.packaging.AbstractJarVisitor] Searching mapped entities in jar/par: vfsfile:/<path>/<exploded jar>/
[org.hibernate.ejb.packaging.AbstractJarVisitor] Searching mapped entities in jar/par: vfsfile:/<path>/<exploded jar>/

一方、期待どおりにスキャンされたコンパクトな JAR

[org.hibernate.ejb.packaging.AbstractJarVisitor] Searching mapped entities in jar/par: vfszip:/<path>/<jar>/
[org.hibernate.ejb.packaging.AbstractJarVisitor] Filtering: com.xyz.batch.configuration.internal.impl.JobMetadataDocumentImpl$1$JobList
...

見つからなかったエンティティに対するクエリで QuerySyntaxException が発生する

org.hibernate.hql.ast.QuerySyntaxException: <EntityName> is not mapped 
4

1 に答える 1

1

Red Hatのサポートによると、展開されたJARでスキャンを使用することはできません。2つのソリューションが利用可能です:

  • コンパクトJARを使用し、スキャンは期待どおりに機能します
  • Exploded JARを使用し、persistence-unitで<class/>タグを使用してすべての@Entityを宣言します。
于 2011-11-02T08:55:19.337 に答える