hibernate或oracle对时间表的支持?

时间:2011-05-18 09:16:59

标签: java oracle hibernate orm

我们需要使用Hibernate将版本化的Java对象持久化到Oracle数据库中,以便每个版本都有一个有效的from和valid-until时间戳。这样我们就可以在特定时间查询对象。

Hibernate或Oracle 11g(或其他任何东西)是否提供了可以简化此操作的任何内容?

2 个答案:

答案 0 :(得分:3)

如果您有Oracle Enteprise Edition,您可以为相关的表创建闪回存档,然后使用纯SQL,您可以执行SELECT * FROM table_name AS OF timestamp

一旦创建了闪回存档,Oracle将在后台管理所有内容。

手册中有更多详细信息:

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e17125/adfns_flashback.htm#ADFNS01011

答案 1 :(得分:2)

查看Hibernate Envers

  

Envers项目旨在实现对持久性类的轻松审核/ 版本控制。您需要做的就是使用@Audited注释要审核的持久类或其某些属性。对于每个经审计的实体,将创建一个表,该表将保存对实体所做更改的历史记录。 您可以毫不费力地检索和查询历史数据