首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hibernate一对多双向关联中如何配置list

2012-10-21 
hibernate一对多双向关联中怎么配置list假设有一个文档管理者类User,和一个文档类Archives。其中User和Arch

hibernate一对多双向关联中怎么配置list

假设有一个文档管理者类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> 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

<list name = "archives"  table = "ARCHIVES" cascade = "save-update"  lazy="true">   <!-- a_user表所关联的表的外键,此处为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.hbm.xml中对Archives属性manager的配置

<!-- USER_ID为ARCHIVES的外键 --><many-to-one name="manager"    column = "USER_ID"  class = "com.archivesManagement.domain.User"  not-null = "true"></many-to-one>


 如果配置出错的话很容易报org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of这样的错误

热点排行