私はこのような外観のJPAエンティティを持っています。私はJPAプロバイダとしてHibernateはを使用してい@EntityListeners注釈の原因TypeNotPresentExceptionProxyエラー
import javax.persistence.EntityListeners;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
@XmlRootElement
@MappedSuperclass
@EntityListeners({ AuditingEntityListener.class })
public class BaseEntity implements Serializable
{
//body
}
:@EntityListeners
注釈に注意してください。
私は、SpringのLocalContainerEntityManagerFactoryBean
を使用して、JPA EntityManager
を作成します。 setPersistenceUnitPostProcessors
メソッドを使用して、postProcessPersistenceUnitInfo
メソッドでエンティティクラスを登録するPersistenceUnitPostProcessor
インスタンスを設定します。 (私はそれが春のブートではないことを知っていますが、それは別の時間の話題です)。
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:724)
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:531)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:355)
at sun.reflect.annotation.AnnotationParser.parseAnnotation2(AnnotationParser.java:286)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:120)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
at java.lang.Class.createAnnotationData(Class.java:3521)
at java.lang.Class.annotationData(Class.java:3510)
at java.lang.Class.getAnnotation(Class.java:3415)
at java.lang.reflect.AnnotatedElement.isAnnotationPresent(AnnotatedElement.java:258)
at java.lang.Class.isAnnotationPresent(Class.java:3425)
at org.hibernate.annotations.common.reflection.java.JavaAnnotationReader.isAnnotationPresent(JavaAnnotationReader.java:50)
at org.hibernate.annotations.common.reflection.java.JavaXAnnotatedElement.isAnnotationPresent(JavaXAnnotatedElement.java:60)
at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.categorizeAnnotatedClass(AnnotationMetadataSourceProcessorImpl.java:116)
at org.hibernate.boot.model.source.internal.annotations.AnnotationMetadataSourceProcessorImpl.<init>(AnnotationMetadataSourceProcessorImpl.java:105)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess$1.<init>(MetadataBuildingProcess.java:147)
at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:141)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:858)
at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:885)
at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:60)
at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:353)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:370)
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:359)
私は上記のエンティティクラスに@EntityListeners({ AuditingEntityListener.class })
注釈をコメントアウト:afterPropertiesSet
メソッドは、この例外をスロー呼び出して、LocalContainerEntityManagerFactoryBean
上DataSource
およびその他のプロパティを設定した後
。その後
、LocalContainerEntityManagerFactoryBean
さんafterPropertiesSet()
方法はしなかったエラーを投げ、それは(私は、エンティティの基本的な選択を行うためにそれを使用することができました)使用可能なEntityManager
インスタンスを生成。だから、少なくとも私はセットアップの残りの部分が正しく動作することを知っています。
誰でも教えてください@EntityListeners
注釈を使用しているときにエラーが表示され、どのように修正できますか?限り、私はランタイムクラスパス(javax.persistence-api-2.2.jar
ファイルはwebappのWEB-INF/lib
ディレクトリにあります)と言うことができるので、AuditingEntityListener
クラス(spring-data-jpa-1.11.6.RELEASE.jar
ファイル内)です。それは便利です場合
、これらは私が依存関係を取得するために使用しているのGradleのエントリは次のとおりです。
compile "org.springframework:spring-core:4.3.7.RELEASE"
compile "org.springframework:spring-beans:4.3.7.RELEASE"
compile "org.springframework:spring-context:4.3.7.RELEASE"
compile "org.springframework.data:spring-data-jpa:1.11.6.RELEASE"
compile "javax.persistence:javax.persistence-api:2.2"
compile "org.hibernate:hibernate-core:5.2.10.Final"
@EntityListeners
注釈を使用しているとき、私はエラーを取り除くために何ができますか?
ありがとうございます!