欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

hibernate单实体的级联查询

程序员文章站 2022-03-07 17:26:42
...
其实单实体的一对多和多对一和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 class="increment"></generator>
</id>

<property name="firstname" 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 class="com.test.bean.User" />
</set>
<many-to-one name="user" column="parentID" class="com.test.bean.User"></many-to-one>

</class>
</hibernate-mapping>