【发布时间】:2021-01-01 15:47:43
【问题描述】:
我尝试搜索此特定问题,但无法获得任何帮助
在创建员工时 --> 应该创建帐户。
我的实体是 --> 员工实体
@Entity
@Table(name = "EMPLOYEE")
public class EMPLOYEE implements Serializable {
private static final long serialVersionUID = -1798070786993154676L;
@Id
@Column(name = "EMPLOYEE_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private int EMPLOYEE_id;
@Column(name = "EMPLOYEE_name")
private String EMPLOYEE_name;
@Column(name = "EMPLOYEE_desc")
private String EMPLOYEE_desc;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "EMPLOYEE_id")
@MapsId
private ACCOUNT account;
// getters and setters
}
账户实体-->
@Entity
@Table(name = "ACCOUNT")
public class ACCOUNT implements Serializable {
private static final long serialVersionUID = -6790693372846798580L;
@OneToOne( fetch = FetchType.LAZY)
@JoinColumn(name = "EMPLOYEE_id")
private EMPLOYEE employee
@Id
@Column(name = "account_id")
private int account_id;
@Column(name = "account_desc")
private String account_desc;
// getters setters
}
在创建员工时 --> 应该创建帐户。
我的 pojo 被正确映射,如下所示 -->
employee = { EMPLOYEE_id = 0 ,
EMPLOYEE_name = 'abc' ,
EMPLOYEE_desc = 'new employee' ,
account = { account_id = 1 ,
account_desc = 'my account' ,
EMPLOYEE_id = 0 }
}
所以当我使用相同的员工对象时 - 它会生成 employee_id ,但相同的employee_id 不会填充到帐户表中
它部分工作 --> Account 表中的 Employee_id 没有被填充。
我尝试在 stackOverflw 上搜索很多问题 - 但到目前为止没有运气。 任何帮助表示赞赏。
提前谢谢你
【问题讨论】:
-
你在代码中的任何地方都使用
ACCOUNT.setEmployee(employee)吗? -
请提供有关您如何构造
Employee和Account对象并保存它的信息。 -
添加了有关填充我的员工对象的更多信息
标签: java hibernate jpa hibernate-annotations