2012-02-13 20 views
10

は、hibernate.cfg.xml内のオブジェクトをスコープで定義したり、1つずつ定義したりすることはできません。Hibernate + Spring MVC:オブジェクトマッピングコンフィグレーション

例えば、春にあなたは、このような注釈により、すべてのコントローラを定義することができます。

<context:component-scan base-package="crm.controller" /> 

は、私は同じように休止状態のクラスを定義することはできますか?それとも1つずつ定義する必要がありますか?

<mapping package="com.mycompany.model" /> 

代わりに要素のセットで:

<mapping class="com.mycompany.model.EntytyOne" /> 
<mapping class="com.mycompany.model.EntytyTwo" /> 
+0

関連した質問: http://stackoverflow.com/q/1413190/211197 http://stackoverflow.com/q/2419802/211197 – maksimov

答えて

1

Spring MVCを使用している場合は、sessionFactoryを設定するときに設定できます。あなたはHBMファイルを使用している場合:

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="mappingResources"> 
     <list> 
      <value>file1.hbm.xml</value> 
      <value>file2.hbm.xml</value> 
     </list> 
    </property> 
    <property name="hibernateProperties" ref="hibernateProperties"/> 
</bean> 

をあなたは注釈付きのクラスを使用している場合:

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="com.yourcompany.module" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">${hibernate.dialect}</prop> 
      <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> 
     </props> 
    </property> 
</bean> 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="com.me.domain"> 
    <property name="hibernateProperties" ref="hibernateProperties"/> 
</bean> 
0

を使用してみてくださいありがとうございます。私はこれは、それがアウト・オブ・ボックスであるとして、休止状態をサポートしていません「パッケージsanningを」自分のドメインクラスを発見するために私の知る限り覚えているようspringDAOcontext.xml

<bean id="csiSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 
    <property name="configLocation"> 
     <value>classpath:hibernate/hibernate.cfg.xml</value> 
    </property> 
    <property name="dataSource" ref="DataSource"/> 

    <property name="mappingResources"> 
     <list> 
      <value>hibernate/*</value> 
        </list> 
        <property> 
+0

あなたはより詳細な情報を提供することができ、私 – nKognito

+0

のために動作しませんか?ログに何かエラーがありますか?おそらくここにそれらを貼り付けることができますか? –

+0

マッピングパッケージを使用するとエンティティが見つかりませんでした – nKognito

0

は、なぜあなたはこれを試していけない

0

を設定しています。

しかし、HibernateとSpring MVCを統合している場合は、クラス(標準のJPA + Hibernate固有アノテーション)にアノテーションを付け、Springのコンテキスト設定ファイルにHibernateエンティティクラスを含むパッケージを指定できます。ここで私は、以前のプロジェクトでそれを構成し方法は次のとおりです。

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="packagesToScan" value="org.springmvc.domain" /> 
    <property name="hibernateProperties"> 
     <props> 
      <prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop> 
      <prop key="hibernate.hbm2ddl.auto">update</prop> 
      <prop key="show_sql">true</prop> 
      <prop key="log_level">DEBUG</prop> 
     </props> 
    </property> 
</bean> 

「packagesToScan」プロパティは、春はHibernateはエンティティクラスを発見するためにスキャンしなければならないパッケージを定義します。

0

イムはapplicationContext.xmlをのコードは、エンティティ@ JPAアノテーションを使用しますパッケージパス "com.yourcompany.module"は、Javaエンティティパッケージです。たとえば、

package com.yourcompany.module; 
@Entity 
class MyEntity{ 
    private Long id; 
    set get... 
} 
関連する問題