Hibernate使用超类实现软删除

Yog*_*dke 5 java hibernate jpa

当前的软删除实现如下所示

家长班

@MappedSuperclass
public abstract class ParentClass {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;

    private boolean archived = false;
}
Run Code Online (Sandbox Code Playgroud)

儿童班1

@Entity
@SQLDelete(sql = "UPDATE child_class1 SET archived = 1 WHERE id = ?")
@Where(clause = "is_archived = 'false'")
public class ChildClass1 extends ParentClass {
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

儿童班2

@Entity
@SQLDelete(sql = "UPDATE child_class2 SET archived = 1 WHERE id = ?")
@Where(clause = "is_archived = 'false'")
public class ChildClass2 extends ParentClass {
    ...
    ...
}
Run Code Online (Sandbox Code Playgroud)

如您所见,SQLDelete&Where子句在查询中有微小差异的情况下重复出现。有没有一种方法可以将它们归纳并能够将它们放入ParentClass?就像是

@MappedSuperclass
@SQLDelete(sql = "UPDATE <what_would_come_here> SET archived = 1 WHERE id = ?")
@Where(clause = "is_archived = 'false'")
public abstract class ParentClass {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    protected Long id;

    private boolean archived = false;
}
Run Code Online (Sandbox Code Playgroud)

我确实尝试了上述更改,但是休眠状态未将这些注释应用于get或delete实体。