Java 子表的Hibernate软删除
假设我们有两个实体Customer和AppUser,它们是一对多关系 客户实体:Java 子表的Hibernate软删除,java,hibernate,one-to-many,soft-delete,Java,Hibernate,One To Many,Soft Delete,假设我们有两个实体Customer和AppUser,它们是一对多关系 客户实体: @Entity @Table(name = "CUSTOMER") //Override the default Hibernation delete and set the deleted flag rather than deleting the record from the db. @SQLDelete(sql="UPDATE customer SET deleted = '1' WHERE id = ?"
@Entity
@Table(name = "CUSTOMER")
//Override the default Hibernation delete and set the deleted flag rather than deleting the record from the db.
@SQLDelete(sql="UPDATE customer SET deleted = '1' WHERE id = ?")
//Filter added to retrieve only records that have not been soft deleted.
@Where(clause="deleted <> '1'")
public class Customer implements java.io.Serializable {
private long id;
private Billing billing;
private String name;
private String address;
private String zipCode;
private String city;
private String state;
private String notes;
private char enabled;
private char deleted;
private Set appUsers = new HashSet(0);
//Constructors...
//Getters and Setters...
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "customer")
//Filter added to retrieve only records that have not been soft deleted.
@Where(clause="deleted <> '1'")
public Set getAppUsers() {
return this.appUsers;
}
public void setAppUsers(Set appUsers) {
this.appUsers = appUsers;
}
}
@Entity
@Table(name = "APP_USER")
//Override the default Hibernation delete and set the deleted flag rather than deleting the record from the db.
@SQLDelete(sql="UPDATE app_user SET deleted = '1' WHERE id = ?")
//Filter added to retrieve only records that have not been soft deleted.
@Where(clause="deleted <> '1'")
public class AppUser implements java.io.Serializable {
private long id;
private Customer customer;
private AppRole appRole;
private char enabled;
private String username;
private String appPassword;
private Date expirationDate;
private String firstName;
private String lastName;
private String email;
private String phone;
private String fax;
private char deleted;
private Set
persons = new HashSet(0);
//Constructors...
//Getters and Setters...
}
现在,已删除的appUser已从数据库中硬删除,并保留三条记录。我还是想用软删除来处理这种情况,有人可以帮忙吗?最后,我找到了答案,添加@SQLDelete来收集客户类
@SQLDelete(sql="UPDATE customer SET deleted = '1' WHERE id = ?")
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "customer")
//Filter added to retrieve only records that have not been soft deleted.
@Where(clause="deleted <> '1'")
public Set getAppUsers() {
return this.appUsers;
}
@SQLDelete(sql=“UPDATE customer SET deleted='1'其中id=?”)
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy=“客户”)
//添加筛选器以仅检索尚未软删除的记录。
@其中(子句=“已删除的“1”)
公共集getAppUsers(){
返回此.appUsers;
}
休眠文档链接:
谢谢!你是个救生员。
appUsers.remove(oneItem)
saveCustomer(customer);
@SQLDelete(sql="UPDATE customer SET deleted = '1' WHERE id = ?")
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "customer")
//Filter added to retrieve only records that have not been soft deleted.
@Where(clause="deleted <> '1'")
public Set getAppUsers() {
return this.appUsers;
}