2010-10-25 12 views
9

Ich suche temporäre Bibliotheken für Java, d. H. Bibliotheken, die mehrere historische Versionen des gleichen Konzepts speichern können. Ich bin für eine Bibliothek suchen, die eine API so etwas wie zu tun hat:Temporale Bibliotheken für 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"); 

Sie eine Diskussion über zeitliche Fragen auf der nice articles by Martin Fowler

Eine Bibliothek gefunden finden kann ich ist JTemporal, was ziemlich gut scheint für mich, aber es ist nicht vollständig und fehlt Unterstützung für Hibernate Persistenz. Ich möchte Unterstützung für zeitliche Sets auch, d. H. Sets in einem genauen Zeitpunkt definiert. JTemporal macht das, aber das TemporalSet ist nicht einfach.

+0

können Sie das nicht mit einer 'Map' machen? – Bozho

+0

Dies ist, was JTemporal tut, aber die zeitliche Unterstützung ist viel mehr, als würde man benachbarte Perioden mit demselben Wert verschmelzen und vieles mehr. Die Karte ist jedoch für ein einzelnes temporäres Attribut, aber die Behandlung temporaler Mengen ist schwieriger – cdarwin

Antwort

4

Schauen Sie sich DaoFusion Framework an, das als bitemporales Framework mit enger Integration in Hibernate fungiert. Es sollte genau das sein, wonach Sie suchen.

aus der verknüpften Webseite Zitat:

Bitemporale Muster bietet eine elegante und anspruchsvolle Art und Weise mit den meisten zeitlichen Fragen des Umgangs. Die bitemporale Pattern-Implementierung von DAO Fusion basiert auf einem bitemporal framework von Erwin Vervaet und Christophe Vanfleteren erstellt. Sie können mehr über dieses Framework von ihrer Präsentation Temporal Issues in a Rich Domain Model erfahren.

+0

Ich habe es vergessen, aber ich habe es bereits untersucht. Das ist guter Code, aber, wenn ich mich richtig erinnere, ist JTemporal sehr ähnlich und verwendet den gleichen "Trick", der mit JTemporal verwendet werden kann, um die Hibernate-Persistenz zu erreichen: Verwenden Sie eine Sammlung, die Hibernate heiß zuordnen kann. Ich bin mir nicht sicher, dass das der beste Ansatz mit Hibernate ist, und außerdem kann dieser Trick nicht verwendet werden, um JTemporal TemporalSet zu speichern, das eine Sammlung von Sammlungen ist – cdarwin

+0

So funktioniert es .. Bereitstellung einer persistenten Liste zu Hibernate und Bereitstellung ein bitemporales Objekt für die Anwendung. – stefanglase

2

Betrachten Sie Deuce STM - Java Software Transaktionsspeicher.

+0

wie ist das relevant? – Bozho

+0

Basierend auf der Beschreibung: "erlauben, mehrere historische Version des gleichen Konzepts zu speichern" –

+0

+1 Bozho, das hat wenig zu tun mit Fowlers genannt "temporale Objekte" – Toby