2012-03-18 10 views
14

Hola estoy construyendo la aplicación de hibernación de primavera. ¿De verdad necesito configuración desde abajo?¿Por qué se necesitan "clases anotadas" si hay @Entidad?

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

he fijado anotación impulsada en mi raíz context.xml

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

Ahora no debe Hibernate automaticamente tomar todo de estos paquetes con @Entity anotación y convertirlo en la mesa? Por ahora, sin clases anotadas, no creará una tabla a partir de una entidad

Respuesta

27

Use docs, Luke!

[...] Ejemplo de una definición de frijol 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> 

o cuando se utiliza la exploración ruta de clase para la detección automática de clases de entidad:

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

Como puedes ver, puedes elegir entre def en todas las clases explícitamente o solo en el paquete para escanear. <context:component-scan/> no reconoce las anotaciones de Hibernate/JPA y, por lo tanto, no tiene ningún efecto.

Cuestiones relacionadas