草庐IT

java - Datanucleus 警告 : Class was specified in persistence-unit but not annotated, 所以忽略

coder 2024-03-13 原文

启动我的应用程序时,我会为每个类看到此警告:

WARN  [DataNucleus.MetaData] - Class com.mycomp.MyClass was specified in persistence-unit myPersistenceUnit but not annotated, so ignoring

该应用程序正确启动,因此没有直接问题,但我想知道这个即将到来的形式,以及如何避免 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>

我正在使用 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;
}

感谢任何帮助。

最佳答案

您没有在您的 persistence.xml 中包含任何 标记,所以我猜测您的应用程序正在它可以访问的所有类中搜索实体。也许您将实体类与非实体类混合在同一个 java 包中。您并没有对这些包或您的类(class)说太多。

关于java - Datanucleus 警告 : Class was specified in persistence-unit but not annotated, 所以忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15866124/

有关java - Datanucleus 警告 : Class was specified in persistence-unit but not annotated, 所以忽略的更多相关文章

随机推荐