Zum Inhalt springen

[Hibernate] Criteria Restriction mit Datumsberechnung


Empfohlene Beiträge

Geschrieben

Hallo,

Ich kann über Hibernate folgende Abfrage machen:


...

@Override

protected List<CriteriaFilterInterface> getFilter()

{			

 List<CriteriaFilterInterface> ret=super.getFilter();		  

 ret.add(new CriteriaFilterInterface()

 {

  public void applyFilter(Criteria criteria)

 {

  criteria.add(Restrictions.le("Datumsfeld", new Date()));

		  	}

 });		  

 return ret;

...

Damit bekomme ich alle Datensätze deren "Datumsfeld" älter als "jetzt" ist.

Nun würde ich aber gern alle Datensätze bekommen auf welche die Bedingung "Datumsfeld"+8 Tage zutrifft.

Hat bitte jemand einen Tipp für mich?

Bin kein Java-Experte.

Dank und Gruß :)

Geschrieben

Die Bedingung müsstest du noch mal genauer erklären, möchtest du ein bestimmtes Datumsfeld selektiert haben, und davon ausgehend dann alle Daten die 8 Tage in der Zukunft liegen? Oder willst du einfach alle Daten die vom aktuellem Datum 8 Tage in der Zukunft liegen?

Ich kenne mich mit dem Thema Hibernate nun eigentlich garnicht aus, aber in der Java Dokumentation zu Hibernate ist die Klasse Restrictions eigentlich sehr gut erklärt: https://www.hibernate.org/hib_docs/v3/api/org/hibernate/criterion/Restrictions.html

Diese bietet verschiedenste Methoden an, um Vergleiche anzustellen.

Wenn du jetzt also alle Datensätze haben willst deren Datumsfeld 8 Tage von heute in der Zukunft liegen, würde das wohl, denke ich jedenfalls, so aussehen:


		...

		Calendar c = Calendar.getInstance();

		c.add(Calendar.DAY_OF_YEAR, 8);


		criteria.add(Restrictions.[b]eq[/b]("Datumsfeld", c.getTime()));

		...

Geschrieben

Hi,

vielen Dank für deine schnelle Antwort, das war die perfekte Lösung :)

Ich möchte alle Datensätze herausfinden, welche vor 8 Tagen eingestellt wurden, meine Lösung sieht nun so aus:



// finde das Datum von vor 7 Tagen raus

Calendar c = Calendar.getInstance();

c.add(Calendar.DAY_OF_YEAR, -7);


// gib mir alle Datensätze älter als 7 Tage

criteria.add(Restrictions.lt("Datumsfeld", c.getTime()));

Vielen Dank und viele Grüße :)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...