Hibernate学习手记(2)--单向一对多映射

Hibernate实现单向一对多映射


数据库表中表现为“多”那方有“一”的外键,类中表现为“一”那方有“多”那方的集合。

“一”那方的xml 配置文件的格式如下:

hibernate-mappingpackage=" 此处填写包文件 "

classname=" 一对多中一的实体类的类名 "table=" 所对应的数据库的表名 "

idname=" 所对应的实体类的属性 (id)"

column="所对应的数据表的字段 (**_id)"
unsaved-value="null"

generatorclass="native"/

/id

propertyname=" 对应数据表中其他的字段 " ﹥﹤ /property

setname=" 对应实体类中的那个集合的属性 "

inverse="true"

lazy="true"

cascade="save-update"
keycolumn=" 对应其外键的字段 "/
one-to-manyclass=" 对应一对多中多的实体类的类名 "/
/set
/class
/hibernate-mapping

一个user 可以有多个亲人,以下为 user 的类,

public class User{

private int userID;

private Stringusername;

private Stringpassword;

private Set<Relationship> relationships =

n ew HashSet<Relationship>();

/*属性的 get set 方法 */

}

配置文件User.hbm.xml 如下:

<hibernate-mapping package= "com.gis.Entity" >

<class name= "com.gis.Entity.User" table = "user">

< id name = "userID" column ="userID" type= "java.lang.String" >

< generator class = "native"></ generator >

</ id >

< property name = "username" type ="java.lang.String" >

< column name = "username" />

</ property >

< property name = "password" type ="java.lang.String" >

< column name = "password" />

</ property >

< set name = " relationships " cascade ="save-update" >

<!--外键字段 -->

< key column = "userID"/>

< one-to-many class = "com.gis.Entity.Relationship"/>

</ set >

</ class >

</hibernate-mapping >

亲人relationship 的类:

public class Relationship{

private int r_id;

private Stringr_name;

private int userID;

private Stringphone;

/*属性的 get set 方法 */

}

你可能感兴趣的:(Hibernate,xml)