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 :)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...