Datanucleus警告:类在持久性单元中指定但未注释,因此忽略

Mar*_*ijk 8 java google-app-engine spring jpa datanucleus

启动我的应用程序时,我会在每个课程中看到此警告:

WARN  [DataNucleus.MetaData] - Class com.mycomp.MyClass was specified in persistence-unit myPersistenceUnit but not annotated, so ignoring
Run Code Online (Sandbox Code Playgroud)

该应用程序正确启动所以没有直接问题,但我想知道这个即将到来的形式,以及如何避免id.

我的persistence.xml看起来像:

<persistence-unit name="myPersistenceUnit">
    <provider>org.datanucleus.api.jpa.PersistenceProviderImpl</provider>
    <properties>
        <property name="datanucleus.ConnectionURL" value="appengine" />
        <property name="datanucleus.NontransactionalRead" value="true" />
        <property name="datanucleus.NontransactionalWrite" value="true" />
        <property name="datanucleus.appengine.datastoreEnableXGTransactions" value="true" />
        <property name="datanucleus.jpa.addClassTransformer" value="false" />
    </properties>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

我正在使用Spring在Google App Engine上运行我的应用程序.

但我找不到警告的起源.似乎有些东西告诉我的应用程序对所有类进行一些检查.

PS:我正在定义我的entityManagerFactory,如下所示:

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
    LocalContainerEntityManagerFactoryBean entityManagerFactory = new LocalContainerEntityManagerFactoryBean();
    entityManagerFactory.setPersistenceUnitName("myPersistenceUnit");
    entityManagerFactory.setPersistenceUnitPostProcessors(new ClasspathScanningPersistenceUnitPostProcessor("com.mycomp.domain"));
    return entityManagerFactory;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏.

E. *_*lis 6

您没有在persistence.xml中包含任何<jar-file>或<class>标记,因此我的猜测是您的应用程序正在搜索它可以访问的所有类中的实体.也许你正在将Entity与非实体类混合在同一个java包中.你真的没有太多关于pacakges或你的课程.

  • 我将<exclude-unlisted-classes> true </ exclude-unlisted-classes>添加到persistence.xml,导致警告消失.在Spring的LocalContainerEntityManagerFactoryBean的创建中扫描实体类,如问题所示.谢谢你的帮助! (3认同)