2013-04-07 17 views
8

Khi khởi động ứng dụng của tôi, tôi thấy cho mỗi lớp cảnh báo này:DataNucleus cảnh báo: Lớp đã được quy định tại kiên trì đơn vị nhưng không chú thích, vì vậy bỏ qua

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

Ứng dụng khởi động một cách chính xác như vậy không có vấn đề trực tiếp , nhưng tôi tự hỏi, nơi mà hình thức này sắp tới, và làm thế nào để tránh id.

persistence.xml tôi trông như thế:

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

Tôi đang chạy ứng dụng của mình trên Google App Engine bằng mùa xuân.

Nhưng tôi không thể tìm thấy nguồn gốc của cảnh báo. Có điều gì đó khiến ứng dụng của tôi thực hiện kiểm tra tất cả các lớp học.

PS: Tôi đang định entityManagerFactory của tôi như sau:

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

Bất kỳ trợ giúp đánh giá cao.

Trả lời

6

Bạn không bao gồm bất kỳ thẻ < jar-file> hoặc < class> nào trong persistence.xml, do đó, tôi đoán là ứng dụng của bạn đang tìm kiếm Thực thể trong tất cả các lớp mà nó có thể tiếp cận. Có lẽ bạn đang trộn thực thể với các lớp không thực thể trong cùng một gói java. Bạn không nói nhiều về pacakges hoặc lớp học của bạn thực sự.

+0

thực sự và người dùng không đặt "loại trừ các lớp không công khai" ở bất kỳ nơi nào để chấp nhận nó tắt và quét CLASSPATH của mình. – DataNucleus

+3

Tôi đã thêm true vào persistence.xml và điều đó đã khiến cảnh báo biến mất. Các lớp thực thể được quét trong việc tạo ra tệp LocalContainerEntityManagerFactoryBean của Spring như được hiển thị trong câu hỏi. Cảm ơn bạn đã trợ giúp! –