【发布时间】:2022-10-13 15:01:37
【问题描述】:
我正在使用 2 个实体,员工和地址。其中 Employee 有控制器来执行 CRUD 操作。因此,对于这两个实体,我都在使用生命周期事件,其中 Employee 事件工作正常,但地址事件没有。所以我试图保存其中有地址的员工(一对一关系),并期望员工和地址这两个生命周期事件都能触发。
请帮我。我在哪里做错了吗?
这是我的代码。
@Table("EMPLOYEE")
@Builder // these are lombok code
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Data
public class Employee {
@LastModifiedBy
private String updatedBy;
@CreatedBy
private String createdBy;
private Date dob;
@Size(max = 10)
private String name;
@Id
private Integer id;
@LastModifiedDate
private Date updatedOn;
@Version
private Long version;
@CreatedDate
private Date createdOn;
private Integer age;
@Valid
private Address address;
}
@Table("ADDRESS")
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
@Data
public class Address {
private Integer zip;
@Id
private Integer id;
@Size(max = 10)
@NotNull
private String line1;
}
@RestController
public class EmployeeController
{
//CRUD APIs code
}
@Component
public class EmployeeEvents
extends AbstractRelationalEventListener<Employee>
{
@Override
protected void onBeforeSave(BeforeSaveEvent event) {
System.out.println("........"+ event.getEntity());
}
}
@Component
public class AddressEvents
extends AbstractRelationalEventListener<Address>
{
@Override
protected void onBeforeSave(BeforeSaveEvent event) {
System.out.println("........"+ event.getEntity());
}
}
【问题讨论】:
标签: java spring spring-boot spring-data spring-data-jdbc