假设有一个文档管理者类User,和一个文档类Archives。其中User和Archives是一对多双向关联关系
表现在类中如下(此处省略了属性的set和get方法)
User类定义如下:
public class User implements Serializable {
/** 定义id */
private Long id;
/** 定义用户名*/
private String username;
/** 定义密码*/
private String password;
//定义该用户要管理的档案
private List<Archives> archives;
}
Archives类定义如下:
public class Archives implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
// 文档名字
private String name;
// 定义文档管理者
private User manager;
}
以上两个类分别映射到数据库中的User表和ARCHIVBES表
User.hbm.xml文件的配置:
<!--archives是user类里文档的名字,它的类型是list,他所对应的数据库中的表的
名字是ARCHIVES.-->
<list name = "archives" table = "ARCHIVES" cascade = "save-update" lazy="true">
<!-- 用户表所关联的表的外键,此处为ARCHIVES表的USER_ID -->
<key column = "USER_ID"></key>
<!-- ARCHIVES_ID是ARCHIVES表中的主键 -->
<index column = "ARCHIVES_ID"></index>
<!-- 表示user和archives是一对多关系 -->
<one-to-many class = "com.archivesManagement.domain.Archives"></one-to-many>
</list>
Archives.xml文件的配置:
<!-- USER_ID为ARCHIVES的外键 -->
<many-to-one name="manager"
column = "USER_ID"
class = "com.archivesManagement.domain.User"
not-null = "true">
</many-to-one>