【发布时间】:2012-03-15 10:09:36
【问题描述】:
我有一个用于缓存实体的数据库。表格如下所示:
| Persons | Addresses
----------------- --------------
PK| id <--| PK| id
| last_accessed |--- FK| persons_id
| [some] | [more]
| [other] | [address]
| [data] | [stuff]
所以一个人有零个或多个地址。这些表由使用 Hibernate 的 Java 应用程序访问,也可以直接从使用 SQL over JDBC 的同一应用程序访问。
我现在需要将Persons 表的大小调整为一个固定值——比如50,000 条记录。我需要删除最旧的记录(基于last_accessed)才能执行此操作。
是否有 ANSI-SQL 或 HQL 查询可以轻松做到这一点?纯 ANSI-SQL 解决方案将是理想的,因为:
- 我们正在努力保持与数据库无关;
- 我们希望避免将对象加载到应用程序内存中以使 Hibernate 级联删除工作...
【问题讨论】: