使用Hibernate @Where注释显示非空删除的时间戳



你好,我正在使用Spring Boot和JPA。我的实体在数据库中有一个deleted_at时间戳。如何正确使用@Where注释来仅显示deleted_at列为NOT NULL的实体?

我尝试使用@Where注释,但当它等于null时,我得到一个空数组作为响应。我试过了

clause = "deleted_at=null"
clause = "deleted_at=NULL"
clause = "deleted_at='NULL'"

它们都不工作

@Data
@Entity
@Table(name="examples")
@NamedQuery(name="Example.findAll", query="SELECT l FROM Example l")
@SQLDelete(sql = "UPDATE examples SET deleted_at = CURRENT_TIMESTAMP() WHERE id = ?")
@Where(clause = "deleted_at=null")
public class Example {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
Long id;
String name;
Timestamp deletedAt;
}

对于将来考虑这个问题的人来说,解决方案是使用

@Where(clause = "deleted_at IS NULL")

最新更新