2013-04-07 1 views
8

を無視して、注釈を付けていなかった。何の直接的な問題はありませんので、DataNucleusの警告:クラスは、永続性単位で指定されたが、私のアプリを起動すると私はすべてのクラスのために、この警告を参照

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

アプリが正常に起動しますしかし、私はどこにこのようなフォームと、どのようにIDを避けるために思っています。

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

私は春にはGoogle App Engine上で自分のアプリケーションを実行している:

私のpersistence.xmlは次のようになります。

しかし、私は警告の起源を見つけることができません。 何かが私のアプリにすべてのクラスについて何らかのチェックをするように指示しているようです。

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

すべてのヘルプは大歓迎:

PSは、次のように私は私のEntityManagerFactoryを定義しています。

答えて

6

persistence.xmlに< jar-file>または< class>タグを含めていないため、アプリケーションが到達可能なすべてのクラスでエンティティを検索していると思います。たぶんあなたは、Entityと同じJavaパッケージ内の非Entityクラスを混在させているかもしれません。あなたは本当にパカクジやクラスについてはあまり言いません。

+0

実際、ユーザーは「exclude-unlisted-classes」をどこにでも置かないので、そこから離れて自分のCLASSPATHをスキャンすることができます。 – DataNucleus

+3

persistence.xmlに trueを追加したため、警告が消えてしまいました。エンティティクラスは、質問に示すように、SpringのLocalContainerEntityManagerFactoryBeanの作成時にスキャンされます。助けてくれてありがとう! –

関連する問題