hibernate简单多对一实例

来源:互联网 发布:古天乐捐学校知乎 编辑:程序博客网 时间:2024/05/24 02:31

一、对象描述

该实例包含两个实体对象:Project 和 Catalogue,其中一个Project中包含多个Catalogue,Catalogue和Project为多对一的关系

public class Project {
//编号
private int id;
//名称
private String name;
//所包含的目录
// private Set<Catalogue> catalogue;
//描述
private String desciber;

public Project() {
super();
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

/*public Set<Catalogue> getCatalogue() {
return catalogue;
}
public void setCatalogue(Set<Catalogue> catalogue) {
this.catalogue = catalogue;
}*/
public String getDesciber() {
return desciber;
}
public void setDesciber(String desciber) {
this.desciber = desciber;
}

}


public class Catalogue {
private int id;
private String name;
// private Set<Case> cases;
private int father;
private Project project;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
/*public Set<Case> getCases() {
return cases;
}
public void setCases(Set<Case> cases) {
this.cases = cases;
}*/
public int getFather() {
return father;
}
public void setFather(int father) {
this.father = father;
}
public Project getProject() {
return project;
}
public void setProject(Project project) {
this.project = project;
}


}


二、创建表语句

create table project(project_id int primary key auto_increment, name varchar(20), descib varchar(20));

create table catalogue(catalogue_id int primary key auto_increment, name varchar(20), father int, project_id int);


三、hibernate配置文件

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration PUBLIC  
"-//Hibernate/hibernate-configuration DTD 3.0//EN"  
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/auto
</property>
<property name="connection.username">root</property>
<property name="connection.password">111111</property>
<property name="show_sql">true</property>
<mapping resource="com/cx/auto/bean/Catalogue.hbm.xml"/>
<mapping resource="com/cx/auto/bean/Project.hbm.xml"/>
</session-factory>
</hibernate-configuration>

四、映射文件

1、Project.hbm.xml

<?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.cx.auto.bean.Project" table="project">
<id name="id" type="int" column="project_id">
<generator class="native"/>
</id>
<property name="name" type="string" />
<property name="desciber" type="string" column="descib"/>
</class>
</hibernate-mapping>


2、Catalogue.hbm.xml

<?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.cx.auto.bean.Catalogue" table="catalogue">
<id name="id" type="int" column="catalogue_id">
<generator class="native"/>
</id>
<property name="name" type="string" />
<property name="father" type="int" />
<many-to-one name="project" class="com.cx.auto.bean.Project"
  column="project_id"
    not-null="false" /> 
</class>
</hibernate-mapping>


0 0
原创粉丝点击