one
public class DCompany extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 2472916124848152035L;
/**
* 公司标识
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
private String comId;
/**
* 公司名称
*/
private String comName;
/**
* 用户信息
*/
@OneToMany(fetch = FetchType.LAZY)
@JoinColumn(name = "comId")
private List<DUser> users;
/**
* 公司地址
*/
private String comAddress;
/**
* 公司经营类别
*/
private String comType;
/**
* 公司简介
*/
private String comIntro;
/**
* 公司电话
*/
private String comTel;
/**
* 增加时间
*/
private String comCreateDate;
many
public class DUser extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = -7733922431721279323L;
/**
* 用户标识
*/
@Id
@GeneratedValue(generator = "paymentableGenerator")
@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
private String userId;
/**
* 姓名
*/
private String userName;
/**
* 所属公司信息
*/
@ManyToOne
@JoinColumn(name = "comId")
private DCompany company;
/**
* 性别标识M.男F.女
*/
private String userSex;
/**
* 密码
*/
private String userPass;
/**
* Email
*/
private String userEmail;
/**
* 电话
*/
private String userTel;
/**
* qq
*/
private String userQq;
/**
* 是否冻结 0冻结 1正常
*/
private Integer userEnable;
/**
* 创建时间
*/
private Timestamp userCreateDate;
现在数据库里的数据都是空的,没有记录,我想实现的是DCompany 和DUser一起保存在数据库中
比如jsp页面文本框信息如下:
公司名:
公司地址:
公司电话:
姓名:
性别:
QQ:
也就是页面上一次录入DCompany 实体信息与DUser实体信息,然后一点保存,分别把DCompany 信息保存到DCompany 表,DUser信息保存到DUser表中
我的测试代码是这么写的:
DCompany company = new DCompany();
company.setComName("北京时间有限公司");
company.setComAddress("朝阳区酒仙桥1号");
company.setComIntro("介绍信息写这里");
company.setComTel("010-38782121");
company.setComType("test");
DUser user = new DUser();
user.setUserName("test");
user.setUserEmail("test@188.com");
user.setUserPass("123afb");
user.setUserEnable(1);
user.setUserSex("M");
user.setUserTel("13811112121");
user.setUserQq("21232221");
List list = new ArrayList();
list.add(user);
company.setUsers(list);
companyService.saveCompany(company);
可是保存不进去,DUser表里有comId,这样以来如果没有先保存DCompany 信息是不会有comId的,报错
object references an unsaved transient instance - save the transient instance before flushing: org.wdj.base.entity.DUser; nested exception is org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: org.wdj.base.entity.DUser
请问 该如何做呢,谢谢