对于Query接口的list()方法与iterator()方法来说都可以实现获取查询的对象但是list()方法返回的每个对象都是完整的(对象中的每个属性都被表中的字段填充上了)而iterator()方法所返回的对象中仅包含主键值(标示符)只有当对iterator()中的对象进行操作时hibernate才会向数据库再次发送sql语句来获取该对象的属性值 一对多双向关联配置customer与order一对多的关系 [java] public class Customer { private Long id; private String name; private Set<Order> orders;//一对多通过该变量可以引用到对应Order集合对象 …get/set方法省略 } [java] public class Order { private Long id; private String orderNumber; private Customer customer;//多对一通过该变量可以引用到关联的customer对象 …get/set方法省略 } Customerhbmxml [html] <hibernatemapping> <class name=combsihibernateCustomer table=tb_customer> <id name=id column=id type=long> <generator class=increment></generator> </id> <property name=name length= type=string column=name></property> <set name=orders cascade=saveupdate inverse=true> <key column=customer_id></key> <onetomany class=combsihibernateOrder/> </set> </class> </hibernatemapping> Orderhbmxml [html] <hibernatemapping> <class name=combsihibernateOrder table=tb_order> <id name=id column=id type=long> <generator class=increment></generator> </id> <property name=orderNumber column=orderNumber type=string></property> <manytoone name=customer class=combsihibernateCustomer column=customer_id></manytoone> </class> </hibernatemapping> |