一定时间后从数据库中删除实体
Delete an entity from database after a certain amount of time
我正在尝试编写一个项目,该项目采用不同标签的食物(代表不同种类的食物,如蔬菜、罐头等),并在不同食物的每个标签的给定到期时间后自动删除它们,通过.我尝试使用 @Schedule EJB 来实现它,但我对它的理解很困惑,因为我对此还是个新手。
这是实体代码:
@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;
及其中的依赖项 class:
import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.*;
以及@Schedule 的参考:
EJB @Schedule wait until method completed
提前感谢您的帮助。
向 table 添加一列 expires
。插入行时填写行过期时间戳。
现在您可以添加一个 @Schedule
方法来搜索 table 中的行,其中当前时间在列 expires
中的值之后。有的话可以删除。
或者执行查询delete from Food where expires < :now
并为参数now
传递当前时间。然后数据库将进行查询和删除,但您无法记录删除了哪些行,这可能有助于调试问题。
我正在尝试编写一个项目,该项目采用不同标签的食物(代表不同种类的食物,如蔬菜、罐头等),并在不同食物的每个标签的给定到期时间后自动删除它们,通过.我尝试使用 @Schedule EJB 来实现它,但我对它的理解很困惑,因为我对此还是个新手。 这是实体代码:
@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;
及其中的依赖项 class:
import org.hibernate.validator.constraints.NotBlank;
import javax.persistence.*;
以及@Schedule 的参考:
EJB @Schedule wait until method completed
提前感谢您的帮助。
向 table 添加一列 expires
。插入行时填写行过期时间戳。
现在您可以添加一个 @Schedule
方法来搜索 table 中的行,其中当前时间在列 expires
中的值之后。有的话可以删除。
或者执行查询delete from Food where expires < :now
并为参数now
传递当前时间。然后数据库将进行查询和删除,但您无法记录删除了哪些行,这可能有助于调试问题。