Hibernate单向的一对多关联

单向的一对多关联映射关系主要是通过外键来关联。一对多的关联映射是在表示“多”的一方的数据表中增加一个外键,并由“一”的一方指向“多”的一方。 单向一对多关联的持久化类里需要包含一个集合属性,在“一”的一方访问“多”的一方时,“多”的一方将以集合的形式来体现。如一个用户对应多个地址,则在User类的定义中会包含一个集合属性,该属性就用来保存多个Address实体。 假设一个用户对应多个地址,则用户表User和地址表Address在数据库中表结构如下: USER表 Field Type Null Key Default Extra userid Int(11) No PRI NULL auto_increment name Varchar(20) YES NULL password Varchar(12) YES address表 Field Type Null Key Default Extra addressid Int(11) NO PRI NULL auto_increment addressinfo Varchar(255) YES NULL user_id Int(11) NO MUL NULL address表中user_id即为外键列,它表示一个用户可以拥有多个地址。 下面需要在实体类User里添加Address的集合,以形成单向一对多的关系。User类的代码如下: import java.util.HashSet; import java.util.Set; public class User { private int userid; private String name; private String password; private Set
addresses = new HashSet
(); 此处省略属性的getter和setter方法 } 表address的持久化类为Address.java,其代码如下: public class Address{ private int addressid; private String addressinfo; } 建立一对多关联时,需要在“一”端的映射文件中使用one-to-many元素来映射关联实体。one-to-many元素可以包含的可选属性如下: class:指定关联类的名称。 not-found:该属性取值为exception或ingnore。当取值为exception时,表明若从表记录所参照的主表记录不存在时,Hiberante会抛出异常;当取值为ingnore时,则表示忽略该异常。 User类映射文件如下: Address映射文件如下:

posted on 2017-06-15 10:40  cxdao  阅读(177)  评论(0编辑  收藏  举报

导航