2012-03-18 34 views
14

Xin chào, tôi đang xây dựng ứng dụng spring-hibernate. Tôi thực sự cần cấu hình từ bên dưới?Tại sao "annotatedClasses" lại cần thiết nếu có @Entity?

<property name="annotatedClasses"> 
     <list> 
      <value>org.fixus.springer.model.User</value> 
     </list> 
    </property> 

tôi đã thiết chú thích-driven trong tôi gốc context.xml

<mvc:annotation-driven /> 
<context:component-scan base-package="org.fixus.springer" /> 
<context:component-scan base-package="org.fixus.springer.model" /> 

Bây giờ không nên ngủ đông automaticly mất tất cả mọi thứ từ này gói với chú thích @Entity và chuyển nó sang bảng? Hiện tại không có chú thíchClass, anh ta sẽ không tạo bảng từ thực thể

Trả lời

27

Sử dụng docs, Luke!

[...] Ví dụ cho một định nghĩa bean AnnotationSessionFactoryBean:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="annotatedClasses"> 
     <list> 
      <value>test.package.Foo</value> 
      <value>test.package.Bar</value> 
     </list> 
    </property> 
</bean> 

Hoặc khi sử dụng chức năng quét classpath cho dò các lớp thực thể:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="packagesToScan" value="test.package"/> 
</bean> 

Như bạn có thể thấy bạn có một sự lựa chọn giữa def ining tất cả các lớp một cách rõ ràng hoặc chỉ gói để quét. <context:component-scan/> không nhận ra chú thích Hibernate/JPA và do đó không có hiệu lực.

Các vấn đề liên quan