针对load(),get()有效
关键的属性标签: fetch
Many-to-One
默认为select; 配置join-lazy失效,用到左链接
<hibernate-mapping>
<class name="com.lohamce.hibernate.Student" table="t_student">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<property name="createTime" />
<many-to-one name="classes" column="classesid" fetch="join"/>
<filter name="filter" condition="id < :myid" />
</class>
</hibernate-mapping>
One-to-Many
join:会采用外连接,会根据集合个数发出多条sql
subselect:会使用子查询,只会多发出一条sql
batch-size:在集合上的应用,可以减小发出sql的条数
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.lohamce.hibernate"> <class name="Classes" table="t_classes"> <id name="id"> <generator class="native" /> </id> <property name="name" /> <set name="students" inverse="true" cascade="all" fetch="join"> <key column="classesid" /> <one-to-many class="Student" /> </set> </class> </hibernate-mapping>
1+n问题