Veröffentlicht 8. Dezember 200915 j 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ß
8. Dezember 200915 j 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())); ...
8. Dezember 200915 j Autor 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 Konto oder melde dich an, um einen Kommentar zu schreiben.