我有3张桌子 - 租赁帐户,租约,交易。 每个租赁账户有N个租约,每个租赁有N个交易。 我只允许对数据库进行1次查询 - 从Lease Account中选择*,将所有这些数据作为N Lease Account对象提取到Java中 - 每个Lease Account对象包含一个Lease对象 - 每个Lease包含一个Transaction对象。 / p>
有人可以指导我如何在Hibernate(3.2)中为这个场景编写一对多的映射(hbm.xml)吗?
感谢。
答案 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如何获取子节点。)