如果有@Entity,为什么需要“annotatedClasses”?

时间:2012-03-18 08:08:26

标签: spring hibernate annotations

您好我正在构建spring-hibernate应用程序。我真的需要从下面进行配置吗?

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

我在root-context.xml中设置了注释驱动

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

现在不应该自动从这个带有注释@Entity的包中取出所有内容并将其转换为表格?至于现在没有annotatedClasses,他不会从实体

创建一个表

1 个答案:

答案 0 :(得分:29)

使用docs,Luke!

  

[...] AnnotationSessionFactoryBean bean定义的示例:

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

或者当使用类路径扫描来实现实体类的自动检测时:

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

如您所见,您可以在明确定义所有类或仅扫描包之间进行选择。 <context:component-scan/>无法识别Hibernate / JPA注释,因此无效。