假设有一个文档管理者类User,和一个文档类Archives。其中User和Archives是一对多双向关联关系
表现在类中如下(此处省略了属性的set和get方法)
public class User implements Serializable {
private static final long serialVersionUID = -7327980678002278494L;
/** 定义id */
private Long id;
/** 定义用户名*/
private String username;
/** 定义密码*/
private String password;
//定义该用户要管理的档案
private List archives;
}
public class Archives implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private Long id;
// 文档名字
private String name;
// 定义文档管理者
private User manager;
}
对于数据库表方面
文档管理表的SQL语句如下
create table USER (
ID bigint not null,
USER_NAME varchar(15),
primary key(ID)
);
档案表的SQL语句如下
create table ARCHIVES(
ARCHIVES_ID bigint not null,
ARCHIVES_NAME char(15),
ARCHIVES_REMARK char(15) ,
USER_ID bigint,
oreign key(USER_ID) references A_USER(ID),
primary key(ARCHIVES_ID)
);
下面是各自的hibernate文件配置User.hbm.xml
Archives.hbm.xml中对Archives属性manager的配置
如果配置出错的话很容易报org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of 这样的错误