我有两个实体员工和工资,我希望每当员工实体角色属性发生变化时我的工资实体都会更新。 员工实体: EMP_ID 名称 角色 薪资实体: ID EMP_ID SalarySlab
每当员工角色发生任何变化时,我都需要自动更新工资单。 我无法在spring data / jpa
中获得正确的方法答案 0 :(得分:0)
我假设您在@OneToOne
和Employee
之间存在Salary
关系,因此您的Employee
实体已正确注释薪水字段。例如:
@OneToOne(mappedBy="employee")
private Salary salary;
有关实体关系映射的更多信息here。
最简单的解决方案是您必须将此逻辑放在角色设置器中。例如:
void setRole(Role newRole) {
this.role = newRole;
updateSalary();
}
void updateSalary() { ... }
如果您没有该字段的setter方法 - 我不建议这样做 - 您可以使用JPA的@PrePersist
和@PreUpdate
注释。例如:
@PrePersist
@PreUpdate
public void updateSalary() { ... }
这种方式updateSalary
将在每次spring创建新Employee
实体或更新现有实体时调用。有关生命周期回调的更多信息' hibernate实现here。