web-dev-qa-db-ja.com

同じデータベースで複数のMySQLテーブルをマッピングするためのHibernate構成ファイル(.cfg.xml)?

Java WebアプリのHibernateを実験しています。以下はhibernate.cfg.xmlの一部であり、同じ構成ファイルで複数のデータベーステーブルをマップする方法を知りたいです。アノテーションを使用しています。モデルをmysqlデータベーステーブルにマップし、複数のモデルクラス(models.Bookなど)を持っている場合、hibernate.cfg.xmlでモデルをマップする方法は?

<hibernate-configuration>
    <session-factory>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/test_db</property>
        <property name="connection.username">root</property>
        <property name="connection.password">xxx</property>

        <property name="connection.pool_size">1</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="current_session_context_class">thread</property>
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <property name="show_sql">true</property>
        <property name="hbm2ddl.auto">validate</property>

        <mapping class ="models.Category" />

    </session-factory>
</hibernate-configuration>
6
TonyGW

Cfg.xmlファイルでマッピングを指定しないでください。これは、注釈またはXMLのいずれかで行う必要があります。アノテーションの場合:アノテーションを使用してエンティティークラスとのデータベースマッピングを示す場合、提供されたcfg.xmlファイルは問題ありません。

エンティティとテーブル間のXMLマッピング方法を使用するには、hbm.xmlファイルを作成する必要があり、その場合は置換します

<mapping class ="models.Category" />

のようなもので

<mapping resource="models/Book.hbm.xml></mapping> 

また、hbm.xmlファイルには、次のように必要なマッピングが含まれています。例えば:

   <hibernate-mapping>
    <class name="models.Book" table="Book" catalog="your database name">
        <id name="bookId" type="Java.lang.Integer">
            <column name="BOOKID" />
            <generator class="identity" />
        </id>
        <property name="authorName" type="string">
            <column name="AUTHOR_NAME" length="10" not-null="true" unique="true" />
        </property>
    </class>//all the database mappings
</hibernate-mapping>

申し訳ありませんが、あなたの質問を誤って理解した場合。

6
dvk317960

単一の構成ファイルで複数のデータベースを構成することはできません。複数のデータベースを使用する場合は、複数の構成ファイルを使用する必要があります。それぞれのテーブルで、それぞれの構成ファイルで構成できます。

1
pratap reddy