我有一个我正在做的项目,其中我有一个组,这个组有一个组图像(id和url)。当我删除一个特定的组时,我希望它也从MySql数据库中删除它的图像实体。
但是,数据库中的第一个组图像实体是一个通用图标的url,我将该图标放在其中,ID为1。
我知道,当我删除一个组时,相关的图像实体也会被删除,因为我将级联类型设置为all。
当使用通用图标的组被删除时,这会出现问题,因为它会将group_image_id设置为NULL,从而导致NPE。
我的问题是,有没有办法保护单个组映像实体不受级联删除的影响?
发布于 2019-05-08 00:18:32
我从来没有尝试过这样做,但是可以尝试的一个选项是自定义delete语句,该语句用于您想要防止在where子句中删除where的实体类型。您可以使用@SQLDelete注释来实现这一点,并将其包含在where子句“id=1 id <> 1”或类似语句中。
默认行为(未指定@SQLDelete)是按ID删除。
我建议尝试一下这样的方法:
@Table(name="mytable")
@SQLDelete("delete from mytable where id=? and id<>1")
public class MyEntity {
...
}https://stackoverflow.com/questions/56026025
复制相似问题