人员与部门是多对一的关系:
GdpComponentDept.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping package="com.danning.struts.pojo">
<class
name="GdpComponentDept"
table="GDP_COMPONENT_DEPT"
>
<meta attribute="sync-DAO">false</meta>
<meta attribute="sync-DAO">false</meta>
<id
name="Id"
type="integer"
column="FID"
>
<generator class="increment"/>
</id>
<property
name="Fdeptname"
column="FDEPTNAME"
type="string"
not-null="false"
length="50"
/>
<property
name="Fmancount"
column="FMANCOUNT"
type="integer"
not-null="true"
length="10"
/>
<!-- 参见hibernate_reference.pdf的第22章的示例:父子关系-->
<set name="gdpComponentUsers" inverse="true" cascade="all-delete-orphan">
<key column="FID" />
<one-to-many class="GdpComponentUser" />
</set>
</class>
</hibernate-mapping>
GdpComponentUser.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.danning.struts.pojo">
<class
name="GdpComponentUser"
table="GDP_COMPONENT_USER"
>
<meta attribute="sync-DAO">false</meta>
<meta attribute="sync-DAO">false</meta>
<id
name="Id"
type="integer"
column="FID"
>
<generator class="increment"/>
</id>
<property
name="Fusername"
column="FUSERNAME"
type="string"
not-null="false"
length="30"
/>
<!--Fdeptid不能这样写,因为下面的集合many-to-one已经表示了,要通过集合得到部门的Fdeptid-->
<!--property
name="Fdeptid"
column="FDEPTID"
type="integer"
not-null="false"
length="10"
/-->
<property
name="Faddress"
column="FADDRESS"
type="string"
not-null="false"
length="50"
/>
<property
name="Fsex"
column="FSEX"
type="java.lang.Short"
not-null="false"
length="5"
/>
<property
name="Fage"
column="FAGE"
type="java.lang.Short"
not-null="false"
length="5"
/>
<property
name="Fhigh"
column="FHIGH"
type="java.lang.Short"
not-null="false"
length="5"
/>
<property
name="Fweigh"
column="FWEIGH"
type="java.lang.Short"
not-null="false"
length="5"
/>
<property
name="Femail"
column="FEMAIL"
type="string"
not-null="false"
length="50"
/>
<property
name="Fphone"
column="FPHONE"
type="string"
not-null="false"
length="50"
/>
<!-- 参见hibernate_reference.pdf的第22章的示例:父子关系-->
<!--注意:在GdpComponentUser也要写一个gdpComponentDept属性。-->
<many-to-one
name="gdpComponentDept"
column="FDEPTID"
class="GdpComponentDept"
not-null="true"
lazy="false"
>
</many-to-one>
POJO: GdpComponentDept.java
public class GdpComponentDept implements Serializable{
private Integer id;
private String fdeptname;
private int fmancount;
//用集合表示一个部门里的所有人员。
private Set gdpComponentUsers = new HashSet();
public GdpComponentDept() {
// TODO Auto-generated constructor stub
}
//参照hibernate_reference.pdf的191页
//为了让事情变得井井有条,可以为Parent加一个addUser()方法!
public void addUser(GdpComponentUser user){
user.setGdpComponentDept(this);
gdpComponentUsers.add(user);
}
public String getFdeptname() {
return fdeptname;
}
public void setFdeptname(String fdeptname) {
this.fdeptname = fdeptname;
}
public int getFmancount() {
return fmancount;
}
public void setFmancount(int fmancount) {
this.fmancount = fmancount;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Set getGdpComponentUsers() {
return gdpComponentUsers;
}
public void setGdpComponentUsers(Set gdpComponentUsers) {
this.gdpComponentUsers = gdpComponentUsers;
}
}
POJO:GdpComponentUser.java
public class GdpComponentUser implements Serializable{
private Integer id;
private String fusername;
//fdeptid,在影射文件中不用再写一个对应的property,<many-to-one>已经表示了!
//参见hibernate_reference.pdf 的192页
private Integer fdeptid;
private String faddress;
private short fsex;
private short fage;
private short fhigh;
private short fweigh;
private String femail;
private String fphone;
private GdpComponentDept gdpComponentDept;
public GdpComponentUser () {
}
public String getFaddress() {
return faddress;
}
public void setFaddress(String faddress) {
this.faddress = faddress;
}
public short getFage() {
return fage;
}
public void setFage(short fage) {
this.fage = fage;
}
public String getFemail() {
return femail;
}
public void setFemail(String femail) {
this.femail = femail;
}
public short getFhigh() {
return fhigh;
}
public void setFhigh(short fhigh) {
this.fhigh = fhigh;
}
public String getFphone() {
return fphone;
}
public void setFphone(String fphone) {
this.fphone = fphone;
}
public short getFsex() {
return fsex;
}
public void setFsex(short fsex) {
this.fsex = fsex;
}
public String getFusername() {
return fusername;
}
public void setFusername(String fusername) {
this.fusername = fusername;
}
public short getFweigh() {
return fweigh;
}
public void setFweigh(short fweigh) {
this.fweigh = fweigh;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getFdeptid() {
return fdeptid;
}
public void setFdeptid(Integer fdeptid) {
this.fdeptid = fdeptid;
}
public GdpComponentDept getGdpComponentDept() {
return gdpComponentDept;
}
public void setGdpComponentDept(GdpComponentDept gdpComponentDept) {
this.gdpComponentDept = gdpComponentDept;
}
}
一个常量通用类:
package com.danning.struts.utils;
public class Constants {
//设置每页显示的人员数量
public static int ROWSPERPAGE=2;
}
</class>
</hibernate-mapping>