在@ManyToMany的基础上删除行
Delete rows on the basis of @ManyToMany
public class ClazzA{
@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE})
private List<ClazzB> someData;
}
public class ClazzB{
}
我想实现以下功能:
如果 someData 从映射中删除并且未在 clazz_a_some_data 中的任何地方使用(映射 table),它将自动从 table clazz_b 中删除该行。
这可能吗?
这是您必须在业务逻辑中实现的内容。使用级联,您只能将一个对象的生命周期绑定到另一个对象的生命周期。
要让 Hibernate 实现这一点,它需要像 "persistent garbage collection" 这样的东西,而它没有。无论如何,这将是一个性能问题。
public class ClazzA{
@ManyToMany(cascade={CascadeType.PERSIST,CascadeType.MERGE})
private List<ClazzB> someData;
}
public class ClazzB{
}
我想实现以下功能:
如果 someData 从映射中删除并且未在 clazz_a_some_data 中的任何地方使用(映射 table),它将自动从 table clazz_b 中删除该行。
这可能吗?
这是您必须在业务逻辑中实现的内容。使用级联,您只能将一个对象的生命周期绑定到另一个对象的生命周期。
要让 Hibernate 实现这一点,它需要像 "persistent garbage collection" 这样的东西,而它没有。无论如何,这将是一个性能问题。