Hibernate 在一定时间后从数据库中删除实体

Hibernate 在一定时间后从数据库中删除实体,hibernate,jersey,dropwizard,Hibernate,Jersey,Dropwizard,我正试图写一个项目,以不同的标签食品(代表不同种类的食品,如蔬菜,罐头等),并删除后,自动为不同的食品,通过每个标签指定的过期时间。我曾尝试使用@schedulejb实现它,但我对它的理解有点困惑,因为我对它还是新手。 以下是实体代码: @Id @GeneratedValue @Column(name = "ID", nullable = false) private Integer id; @Column(name = "LABEL", nullable = false) private In

我正试图写一个项目,以不同的标签食品(代表不同种类的食品,如蔬菜,罐头等),并删除后,自动为不同的食品,通过每个标签指定的过期时间。我曾尝试使用@schedulejb实现它,但我对它的理解有点困惑,因为我对它还是新手。 以下是实体代码:

@Id
@GeneratedValue
@Column(name = "ID", nullable = false)
private Integer id;
@Column(name = "LABEL", nullable = false)
private Integer label;
@NotBlank
@Length(min = 2, max = 255)
@Column(name = "FOODNAME", nullable = false)
private String foodName;
@Column(name = "FOODNUMBER", nullable = false)
private Integer foodNumber;
以及它的类中的依赖项:

import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.*;
以及@Schedule的参考:


提前感谢您的帮助。

在表中添加一列
expires
。插入行时,在行过期时填写时间戳

现在,您可以添加一个
@Schedule
方法,用于搜索表中当前时间在列
expires
中的值之后的行。如果有,您可以删除它们

或者执行查询
delete from Food where expires<:now
,并传递参数
now
的当前时间。然后数据库将执行查询和删除操作,但您无法记录删除了哪些行,这可能有助于调试问题