2012-03-18 24 views
14

こんにちは私は春の休止状態のアプリケーションを構築しています。本当に下から設定が必要ですか?@Entityがある場合、なぜ "annotatedClasses"が必要ですか?

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

私は、これは注釈@Entityとパッケージのすべてを取ると、それをテーブルに変換する自動に休止状態にはならない今、私のルートのcontext.xml

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

に、アノテーション・ドリブン設定していますか? annotatedClassesなしでは、エンティティからテーブルを作成しません。

答えて

27

Luke!docsを使用してください。

[...] 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> 

またはエンティティ・クラスの自動検出のためのクラスパスのスキャンを使用して:

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

あなたが見ることができるように、def明示的にすべてのクラスをインジェクトするか、スキャンのためにパッケージのみをインジェクトする。 <context:component-scan/>は、Hibernate/JPAアノテーションを認識しないため、効果がありません。

関連する問題