web-dev-qa-db-ger.com

Hibernate-Konfigurationsdatei (.cfg.xml) für die Abbildung mehrerer MySQL-Tabellen in derselben Datenbank?

Ich experimentiere mit Hibernate für meine Java-Web-App. Das Folgende ist Teil meiner hibernate.cfg.xml. Ich frage mich, wie Sie mehrere Datenbanktabellen in derselben Konfigurationsdatei zuordnen können. Ich verwende Anmerkungen, um meine Modelle der MySQL-Datenbanktabelle zuzuordnen, und ich habe mehrere Modellklassen (z. B. models.Book). Wie werden die Modelle in hibernate.cfg.xml zugeordnet?

<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

Wir sollten keine Zuordnungen in der Datei cfg.xml angeben. Dies muss entweder durch Anmerkungen oder XML erfolgen. Für Anmerkungen: Die von Ihnen bereitgestellte Datei cfg.xml sieht in Ordnung aus, wenn wir die Anmerkungen verwenden, um Datenbankzuordnungen mit Entitätsklassen anzuzeigen.

Um die XML-Zuordnung zwischen Entitäten und Tabellen verwenden zu können, muss eine hbm.xml-Datei erstellt werden. In diesem Fall ersetzen Sie sie 

<mapping class ="models.Category" />

mit so etwas

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

die Datei hbm.xml enthält die erforderliche Zuordnung wie folgt .. _. Beispiel:

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

Entschuldigung, wenn ich Ihre Frage falsch verstanden habe.

6
dvk317960

Wir können nicht mehrere Datenbanken in einer einzigen Konfigurationsdatei konfigurieren. Wenn wir mehrere Datenbanken verwenden, müssen wir mehrere Konfigurationsdateien verwenden. In den jeweiligen Tabellen können wir die entsprechenden Konfigurationsdateien konfigurieren.

1
pratap reddy