Hibernate一对多映射2级

时间:2014-05-19 05:24:22

标签: java sql hibernate hbmxml

我有3张桌子 - 租赁帐户,租约,交易。 每个租赁账户有N个租约,每个租赁有N个交易。 我只允许对数据库进行1次查询 - 从Lease Account中选择*,将所有这些数据作为N Lease Account对象提取到Java中 - 每个Lease Account对象包含一个Lease对象 - 每个Lease包含一个Transaction对象。 / p>

有人可以指导我如何在Hibernate(3.2)中为这个场景编写一对多的映射(hbm.xml)吗?

感谢。

1 个答案:

答案 0 :(得分:0)

在您的租赁帐户hbm xml

<class name="LeaseAccounts" table="lease">

    <id name="leaseAccountsId" type="java.lang.Long" column="id" >
        <generator class="native" />
    </id>

<set name="lease" table="lease_accounts"
                    inverse="true" lazy="true" fetch="select">
                <key>
                    <column name="id" not-null="true" />
                </key>
                <one-to-many class="Lease.class" />
            </set>


</class>

同样,您可以为您的租赁表写信 注意:选择*将加载所有数据,取决于您的延迟初始化。如果lazy loading设置为true,那么您需要执行Hibernate.initialize(your collection)

(lazy属性告诉hibernate何时获取子项。 fetch属性告诉hibernate如何获取子节点。)