根据插入时间从 table 中删除行

Detele row from a table based of the time of insertion

有没有什么办法,使用 Hibernate HQL 删除例如包含列类型 TIMESTAMP[ 的最旧的 3 行=16=] 插入行的时间?

首先,您可以创建一个查询,以获取 YourTable table:

中最旧的 3 条记录
String hql1 = "select t.time from YourTable t order by t.time asc";
Query query1 = session.createQuery(hql1);
query1.setMaxResults(3);
List results = query1.list();

接下来,执行 HQL 查询以删除与这 3 个时间戳匹配的所有记录:

String hql2 = string.Format("delete from YourTable t WHERE t.time IN ({0})",
                            string.Join(",", results.ToArray()));
Query query2 = session.createQuery(hql2);
int result = query2.executeUpdate();
System.out.println("Number of row deleted: " + result);

此答案假定您的 table class 称为 YourTable,它有一个名为 time 的字段(列)。它还假定每个时间戳都是唯一的,但事实可能并非如此。如果不能保证您的时间戳是唯一的,那么您可能希望使用主键进行删除。