2013-04-07 9 views
8

Podczas uruchamiania mojej aplikacji widzę dla każdej klasy to ostrzeżenie:Datanucleus ostrzegawcza: klasa została określona w trwałości jednostce ale nie odnotowany, więc ignorując

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

Aplikacja uruchamia się prawidłowo, więc nie ma bezpośredniego problem , ale zastanawiam się, skąd ta nadchodząca forma i jak uniknąć id.

Moja persistence.xml wygląda następująco:

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

biegnę moją aplikację na Google App Engine z wiosny.

Ale nie mogę znaleźć źródła ostrzeżeń. Wydaje się, że coś mówi mojej aplikacji, aby sprawdziła dla wszystkich klas.

PS: Mam definiowania moje EntityManagerFactory następująco:

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

Każda pomoc mile widziana.

Odpowiedz

6

W pliku persistence.xml nie ma żadnych tagów klasy> < jar> lub < class, więc domyślam się, że aplikacja wyszukuje elementy we wszystkich klasach, do których może dotrzeć. Może mieszkasz Entity z klasami innymi niż Entity w tym samym pakiecie java. Nie mówisz zbyt wiele o paczkach czy klasach.

+0

Rzeczywiście, a użytkownik nie umieszcza "exclude-unlisted-classes" w dowolnym miejscu, więc akceptuje to, aby wyłączyć i skanować jego CLASSPATH. – DataNucleus

+3

Dodałem true do persistence.xml i to spowodowało, że ostrzeżenie zniknęło. Klasy encji są skanowane przy tworzeniu Spring LocalContainerEntityManagerFactoryBean, jak pokazano w pytaniu. Dzięki za pomoc! –

Powiązane problemy