hibernate one-to-one 一对一 关系配置
1. 建表
? 用户基本表
? CREATE TABLE `tbl_user` (???????????????????????????????????????????
??????????? `uid` int(11) NOT NULL auto_increment COMMENT '自动增长',?????
??????????? `uname` varchar(10) NOT NULL default 'admin' COMMENT '用户名',?
??????????? `upass` varchar(50) NOT NULL default 'admin' COMMENT '密码',????
??????????? PRIMARY KEY? (`uid`)??????????????????????????????????????????????
????????? ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
用户详细信息表
CREATE TABLE `tbl_detail` (???????????????
????????????? `did` int(11) NOT NULL,?????????????????
????????????? `age` varchar(50) NOT NULL default '0',?
????????????? PRIMARY KEY? (`did`)????????????????????
??????????? ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2. 配置类
? public class TblUser implements java.io.Serializable {
// Fields
private Integer uid;
private String uname;
private String upass;
private TblDetail detail;
?????? /** default constructor */
public TblUser() {
}
public TblDetail getDetail() {
return detail;
}
public void setDetail(TblDetail detail) {
this.detail = detail;
}
// Property accessors
??????? // 省略getter/setter方法
?????? public class TblDetail implements java.io.Serializable {
// Fields
private Integer did;
private Integer age;
private TblUser user;
/** default constructor */
public TblDetail() {
}
public TblUser getUser() {
return user;
}
public void setUser(TblUser user) {
this.user = user;
}
}
}
3. 配置映射文件
TblUser.hbm.xml
?4.? save
TblUser user = new TblUser();TblDetail detail = new TblDetail();detail.setAge(100);user.setUname("michal"+i);user.setUpass("pass"+i);detail.setUser(user);user.setDetail(detail);session.save(user);? 经测试OK
?