Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

hibernate学习(二)list与iterator区别,一对多双向关联配置

$
0
0

1.对于Query接口的list()方法与iterator()方法来说,都可以实现获取查询的对象,但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了),而iterator()方法所返回的对象中仅包含主键值(标示符),只有当对iterator()中的对象进行操作时,hibernate才会向数据库再次发送sql语句来获取该对象的属性值。

 

2.一对多双向关联配置。customer与order一对多的关系

public class Customer {
	private Long id;
	private String name;
	private Set<Order> orders;//一对多,通过该变量可以引用到对应Order集合对象
。。。get/set方法省略
}


 

public class Order {
	private Long id;
	private String orderNumber;
	private Customer customer;//多对一,通过该变量可以引用到关联的customer对象
。。。get/set方法省略
}


Customer.hbm.xml

    <hibernate-mapping>
    	<class name="com.bsi.hibernate.Customer" table="tb_customer">
    		<id name="id" column="id" type="long">
    			<generator class="increment"></generator>
    		</id>
    		<property name="name" length="50" type="string" column="name"></property>
			<set name="orders" cascade="save-update" inverse="true">
				<key column="customer_id"></key>
				<one-to-many class="com.bsi.hibernate.Order"/>
			</set>
    	</class>
    </hibernate-mapping>


Order.hbm.xml

<hibernate-mapping>
     <class name="com.bsi.hibernate.Order" table="tb_order">
      <id name="id" column="id" type="long">
       <generator class="increment"></generator>
      </id>
      <property name="orderNumber" column="orderNumber" type="string"></property>
      <many-to-one name="customer" class="com.bsi.hibernate.Customer" column="customer_id"></many-to-one>
     </class>
    </hibernate-mapping>


 

作者:zhongqian123 发表于2013-1-16 23:46:11 原文链接
阅读:64 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>