你好,我正在使用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")