hibernate.cfg.xml中的“mapping”标记在hibernate.properties中是否具有等效的属性名称?

时间:2013-07-12 17:18:53

标签: spring hibernate java-ee hibernate-mapping

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

如果是,那么hibernate.properties中的等价属性名称是什么 对于有时出现在hibernate.cfg.xml中的“mapping”标记?

例如,这是一个示例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?

1 个答案:

答案 0 :(得分:0)

“我以为hibernate.cfg.xml和hibernate.properties都是  有效地等同,因此可以互换使用。   这是真的吗?“

来自docs

  

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

“mapping”标签

  

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

是的,hibernate.cfg.xml可以转换为等效的hibernate属性文件。

如果您不想使用映射标记,则可以使用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 library

参考hibernte-mapping