2010-10-25 47 views
9

我正在尋找用於Java的時態庫,即允許存儲同一概念的多個歷史版本的庫。 我正在尋找它有一個API做的是這樣一個圖書館:適用於Java的時態庫

Instant i1 = Instant.valueOf("2010-01-01"); 
Instant i2 = Instant.valueOf("2010-01-02"); 
Attribute<String> a = .... 
a.setValue(i1, "String as of 2010-01-01"); 
a.setValue(i2, "String as of 2010-01-02"); 

你可以找到一個關於我發現nice articles by Martin Fowler

一個庫時間問題的討論是JTemporal,這似乎還不錯對我來說,但它並不完整,缺乏對Hibernate持久性的支持。 我也希望支持時間集合,即集合定義在一個確切的時間點。 JTemporal是這麼做的,但是堅持TemporalSet並不容易。

+0

你不能用'Map'來做這個嗎? – Bozho 2010-10-25 21:41:33

+0

這是J mp does does what what but but but but temporal temporal temporal is is is like like like like like like like like like like like like like like like like like and and and 然而,該地圖是針對單個時間屬性的,但處理時間集合更困難 – cdarwin 2010-10-25 21:55:35

回答

4

看看DaoFusion框架,它作爲一個緊密集成到Hibernate中的雙時態框架。它應該是你正在尋找的。

從鏈接的網站引用:

雙時態模式提供了處理時間大部分問題的優雅和成熟的方式。 DAO Fusion提供的雙時段模式實現基於由Erwin Vervaet和Christophe Vanfleteren創建的bitemporal framework。您可以從他們的演示文稿Temporal Issues in a Rich Domain Model瞭解有關此框架的更多信息。

+0

我忘了它,但我已經檢查過它。這是很好的代碼,但是,如果我正確地記得,它與JTemporal非常相似,並且使用與JTemporal一起使用的相同「技巧」來實現Hibernate持久性:使用Hibernate知道熱門映射的uringlying集合。 我不確定這是Hibernate的最佳方法,而且,這個技巧不能用於存儲JTemporal TemporalSet,這是一個集合的集合 – cdarwin 2010-10-25 21:47:05

+0

這就是它的工作方式......爲Hibernate提供一個可持久列表並提供應用程序的雙時段對象。 – stefanglase 2010-10-25 21:51:02

2

看看Deuce STM - Java軟件事務內存。

+0

這與相關性有何關係? – Bozho 2010-10-25 21:28:58

+0

根據描述:「允許存儲同一概念的多個歷史版本」 – 2010-10-25 21:38:27

+0

+1 Bozho,這與福勒所謂的「時間對象」無關 – Toby 2011-03-09 08:52:45