2013-04-07 9 views
8

ignorieren Wenn meine app Anfahren ich für jede Klasse sehen diese Warnung:Datanucleus Warnung: Klasse wurde in Persistenz-Einheit angegeben, aber nicht kommentiert, so

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

Die App richtig anläuft, so gibt es keine direkte Ausgabe ist , aber ich frage mich, wo diese kommende Form und wie ID zu vermeiden.

Mein persistence.xml wie folgt aussieht:

<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> 

ich meine App auf Google App Engine mit Frühling läuft.

Aber ich kann den Ursprung der Warnungen nicht finden. Etwas scheint meiner App zu sagen, dass sie alle Klassen überprüfen soll.

PS: Ich bin die Definition meiner EntityManagerFactory wie folgt:

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

Jede Hilfe sehr geschätzt.

Antwort

6

Sie fügen keine < jar-Datei> oder < class> -Tags in Ihre persistence.xml ein, also denke ich, dass Ihre Anwendung nach Entitäten in allen Klassen sucht, die sie erreichen kann. Vielleicht mischen Sie Entity mit Nicht-Entity-Klassen im selben Java-Paket. Sie sagen nicht viel über die Pacakges oder Ihre Klassen.

+0

in der Tat, und der Benutzer legt keine "exclude-unlisted-classes" da hin, also akzeptiert er, dass er abhebt und seinen CLASSPATH scannt. – DataNucleus

+3

Ich habe true zu persistence.xml hinzugefügt, wodurch die Warnung weggefallen ist. Die Entitätsklassen werden bei der Erstellung von Spring LocalContainerEntityManagerFactoryBean wie in der Frage gezeigt gescannt. Danke fürs Helfen! –