【发布时间】:2014-06-02 08:13:00
【问题描述】:
如果我有 3 个相互连接的班级。
房间类
@Entity
@Table(name="table_room")
Class Room{
@Id
@GeneratedValue
@Column(name="id_room")
private Integer id;
@Column(name="name")
private String name;
@OneToMany(mappedBy="room")
private List<Person> people;
@Column(name="deleted")
private int deleted;
}
人员类
@Entity
@Table(name="table_person")
Class Person{
@Id
@GeneratedValue
@Column(name="id_person")
private Integer id;
@Column(name="name")
private String name;
@ManyToOne
@JoinColumn(name="id_room")
private Room room;
@OneToMany(mappedBy="person")
private List<Phone> phones;
@Column(name="deleted")
private int deleted;
}
然后是电话类
@Entity
@Table(name="table_phone")
Class Phone{
@Id
@GeneratedValue
@Column(name="id_person")
private Integer id;
@Column(name="name")
private String name;
@ManyToOne
@JoinColumn(name="id_person")
private Person person;
@Column(name="deleted")
private int deleted;
}
我在这里要做的是实现软删除,将值 1 插入已删除列的已删除项,并将值 0 插入现有项。我也想级联我的删除,所以如果删除了任何房间,那么与该房间相关的每个人和电话也将被删除(“已删除”列值设置为 1)。我的问题是如何在Hibernate 上做到这一点?有什么优雅的方式来实现这些东西吗?
【问题讨论】:
-
你只是在设置标志。已删除=1,已删除=0。它实际上并没有删除。我不明白你这样做是为了达到什么目的。
标签: java mysql hibernate spring-mvc