hibernate单实体的级联查询
其实单实体的一对多和多对一和2个实体的用法是一样的,现在以user为例:
?
java代码:
?
package com.test.bean;
import java.util.Set;
public class User
{
?private Integer id;
?private String firstname;
?private String lastname;
?private Integer parentID;
?private int age;
?private Set childrens;
?private User user;
?
?public Set getChildrens() {
??return childrens;
?}
?public void setChildrens(Set childrens) {
??this.childrens = childrens;
?}
?public User getUser() {
??return user;
?}
?public void setUser(User user) {
??this.user = user;
?}
?public Integer getId()
?{
??return id;
?}
?public void setId(Integer id)
?{
??this.id = id;
?}
?public String getFirstname()
?{
??return firstname;
?}
?public void setFirstname(String firstname)
?{
??this.firstname = firstname;
?}
?public String getLastname()
?{
??return lastname;
?}
?public void setLastname(String lastname)
?{
??this.lastname = lastname;
?}
?public int getAge()
?{
??return age;
?}
?public void setAge(int age)
?{
??this.age = age;
?}
?public Integer getParentID() {
??return parentID;
?}
?public void setParentID(Integer parentID) {
??this.parentID = parentID;
?}
}
对应的hbm文件:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
?<class name="com.test.bean.User" table="users">
??<id name="id" type="java.lang.Integer" column="id">
???<generator type="string" column="firstname"
???length="50">
??</property>
??<property name="lastname" type="string" column="lastname"
???length="50">
??</property>
??<property name="age" type="java.lang.Integer" column="age"></property>?
??<set name="childrens" inverse="true"
???lazy="false" where=" age=4">
???<key>
????<column name="parentID" />
???</key>
???<one-to-many />
??</set>
?? <many-to-one name="user" column="parentID" class="com.test.bean.User"></many-to-one>?
??
?</class>
</hibernate-mapping>