2009-10-31 7 views
9

(これは私のapplicationContext.xmlにあります)これはxmlをPOJOにマップする方法です。 xmlを作成する必要なしにディレクトリをクラスファイルにマップする方法代わりに、XMLマッピングファイルを使用してのspring + hibernateマッピングクラス(xmlなし)

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
<property name="mappingResources"> 
      <list> 
       <value>com/custompackage/custom/spi/hibernate3/HibernateCurrentStep.hbm.xml</value> 
       <value>com/custompackage/custom/spi/hibernate3/HibernateHistoryStep.hbm.xml</value> 
       <value>com/custompackage/custom/spi/hibernate3/HibernatecustomEntry.hbm.xml</value> 
        <value>user/custom/hibernate3/PropertySetItemImpl.hbm.xml</value> 
        <value>com/custompackage/user/provider/hibernate3/user/impl/HibernateGroupImpl.hbm.xml</value> 
        <value>com/custompackage/user/provider/hibernate3/user/impl/HibernateUserImpl.hbm.xml</value> 
      </list> 
     </property> 


     <property name="hibernateProperties"> 
      ..... 
     </property> 
     <property name="dataSource"> 
      <ref bean="dataSource" /> 
     </property> 

    </bean> 

答えて

23

そして、あなたはさらにので、今com.mycompany.sample.domainパッケージに@Entityで注釈を付けたすべてのクラスが自動的にピックアップされますあなたのAnnotationSessionFactoryBean

<property name="packagesToScan" value="com.mycompany.sample.domain" /> 

<property name="annotatedClasses"> 
    <list> 
     <value>com.mycompany.sample.domain.Order</value> 
     <value>com.mycompany.sample.domain.LineItem</value> 
     ... 
    </list> 
</property> 

を変換することで、物事を単純化することができます。

+0

私のAnnotationSessionFactoryBeanでクラスマッピングをどのように変換する必要がありますか? –

+0

@JiayiZhouあなたは、あなたが何を求めているのかは分かりません。 –

+0

私のエンティティの1つで、OneToOneマッピングが別のエンティティに追加するプロパティを追加します。それを動作させるには、春のフレームワークxmlの設定で何を追加する必要がありますか?あなたはここで私の質問の詳細を確認することができます:http://stackoverflow.com/questions/40956208/how-to-configure-hibernate-onetoone-mapping-using-spring-framework –

17

は、Java 5のアノテーションに基づいていますHibernate Annotationsライブラリを使用することができます。

あなたが永続クラスを宣言する<mapping>要素を使用してもいつものように、あなたは、Hibernate設定ファイル(通常はhibernate.cfg.xml)であなたの永続クラスを宣言する必要がありますが:

<hibernate-configuration> 
     <session-factory> 
     <mapping class="com.mycompany.sample.domain.Order"/> 
     <mapping class="com.mycompany.sample.domain.LineItem"/> 
     </session-factory> 
    </hibernate-configuration> 

の場合Springフレームワークを使用している場合、AnnotationSessionFactoryBeanクラスを使用して、注釈ベースのHibernateセッションファクトリを設定することができます。

+0

Bean宣言は、DispatcherServlet Contextに配置する必要がありますか?あるいは、別のSpring Framework設定ファイルで?また、hibernate.cfg.xmlでパーシスタンスクラスを宣言したときに、Spring SecurityでアノテーションベースのHibernateセッションファクトリを設定する必要がありますか? – woyaru

5

あなたのクラスでアノテーションを使うことはできますが、Hibernateのために(Spring用の)何かが組み込まれているかどうかわかりません。 This threadはさらに多くの技術を避けたい場合に役立ちますが、同じ目標を達成するためにHibernateと協力してJava Persistence Annotations(JPA)を使用することもできます。

Here's JPA + Hibernate + Springを使用するための良いチュートリアルです。

3

@Pascal Thiventは、あなたがしたいことに非常に良いスタートを与えます。各Entityクラスに対して、注釈を付ける必要があります。これはannotations in Hibernateをexpalinするドキュメントです。

ドキュメントから:

@Entity 
    public class Flight implements Serializable { 
    Long id; 

    @Id 
    public Long getId() { return id; } 

    public void setId(Long id) { this.id = id; } 
    } 

@Pascal Thiventに言及した内容に加えて、必要なものをすべて取得する必要があります。

関連する問題