2

我认为 hibernate.cfg.xml 和 hibernate.properties 实际上是等效的,因此可以互换使用。这是真的?

如果是这样,那么 hibernate.properties 中有时出现在 hibernate.cfg.xml 中的“映射”标记的等效属性名称是什么?

例如,这里是一个示例 hibernate.cfg.xml:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <!-- a SessionFactory instance listed as /jndi/name -->
    <session-factory
        name="java:hibernate/SessionFactory">

        <!-- properties -->
        <property name="connection.datasource">java:/comp/env/jdbc/MyDB</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="show_sql">false</property>
        <property name="transaction.factory_class">
            org.hibernate.transaction.JTATransactionFactory
        </property>
        <property name="jta.UserTransaction">java:comp/UserTransaction</property>

        <!-- mapping files -->
        <mapping resource="org/hibernate/auction/Item.hbm.xml"/>
        <mapping resource="org/hibernate/auction/Bid.hbm.xml"/>

        <!-- cache settings -->
        <class-cache class="org.hibernate.auction.Item" usage="read-write"/>
        <class-cache class="org.hibernate.auction.Bid" usage="read-only"/>
        <collection-cache collection="org.hibernate.auction.Item.bids" usage="read-write"/>
    </session-factory>
</hibernate-configuration>

我知道如何将这个 hibernate.cfg.xml 中的一些(但不是全部)标签转换为 hibernate.properties:

hibernate.connection.datasource=java:/comp/env/jdbc/MyDB
hibernate.dialect=org.hibernate.dialect.MySQLDialect

但是如何将其他标签(例如“mapping”)转换为 hibernate.properties?

4

1 回答 1

0

“我认为 hibernate.cfg.xml 和 hibernate.properties 实际上是等效的,因此可以互换使用。这是真的吗?”

来自文档

另一种配置方法是在名为 hibernate.cfg.xml 的文件中指定完整配置。该文件可以用作 hibernate.properties 文件的替代品,或者如果两者都存在,则可以覆盖属性。

“映射”标签

类到表的映射在 hibernate-mapping 标签内。在你的情况下,我认为这应该出现在 Item.hbm.xml

是的 hibernate.cfg.xml 可以翻译成等效的休眠属性文件。

如果不想使用映射标记,可以使用 class 元素声明持久类。

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

你可以使用你可以使用Hibernate Annotations 库

参考hibernte-mapping

于 2013-07-12T19:21:23.497 回答