gpt4 book ai didi

java - Hibernate 在父类(super class)中定义@Where 注解

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:45 26 4
gpt4 key购买 nike

我正在尝试在我的 spring - hibernate 项目中实现软删除。我的计划是用 @SQLDelete 注释覆盖 delete 方法,并在我的查询中使用 hibernate @Where 注释过滤逻辑删除的实体。

当我尝试在父类(super class)中定义 @Where 子句时遇到了一些困难,实体似乎没有从抽象基类继承 @Where 子句类。

注意:如果我将 @Where 注释移动到实体类,一切都会按预期工作

基础实体类:

@MappedSuperclass
@Where(clause = " IS_DELETED = false")
public abstract class BaseEntity {

@Column(name = "IS_DELETED")
private boolean isDeleted;

public BaseEntity() {
}

public boolean getIsDeleted() {
return this.isDeleted;
}

public void setIsDeleted(boolean isDeleted) {
this.isDeleted = isDeleted;
}
}

实体类:

@Entity
@Table(name = "Events")
@SQLDelete(sql ="UPDATE events " +
"SET IS_DELETED = true " +
"WHERE id = ?")
public class Event extends BaseEntity {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private Long id;

@Column(name = "NAME")
private String name;

public Event() {
}

public Long getId() {
return id;
}

public void setId(Long id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}
}

感谢您的帮助:)

最佳答案

你试过吗?

@Where(clause = "IS_DELETED = 0")

@Where(clause = "isDeleted = 0")

?

关于java - Hibernate 在父类(super class)中定义@Where 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51367025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com