Halloliebe Javaner,
ich habe gleich mal ein zweites Problem, diesmal mit Hibenate.
Der Benutzer kann als Suchkriterium ein Datum eingeben.
Mit diesem String möchte ich nun ein Query auf meiner Oracle machen.
Beispiel:
Natürlich bekomme ich jetzt den Fehler das JJJJ-MM-TT ein ungültiges Format für Oracle ist.
Meine Testfälle verwenden jedoch dieses Format und Hibernate soll ja so portierbar sein.
Habe es auch schon mittels
versucht, bekomme dann aber bei dem Query das Date im Query als das toString() Date.
Kann mir jemand sagen wie ich das Query aufbauen muss?
Vielen Dank DreamArtist
ich habe gleich mal ein zweites Problem, diesmal mit Hibenate.
Der Benutzer kann als Suchkriterium ein Datum eingeben.
Mit diesem String möchte ich nun ein Query auf meiner Oracle machen.
Beispiel:
Code:
private KAPat sucheAufnahmen(KAPat patient, Date von, Date bis, String bearbKz){
Set idTeile = patient.getKaIdTeil();
Set idT2 = new HashSet();
Iterator idTeileIterator = idTeile.iterator();
Expression ex = null;
String datumVon = Datum.convertDate2String(
von,
Datum.TT_MM_JJJJ,
Datum.TRENNER_PUNKT,
Datum.TRENNER_PUNKT);
String datumBis = Datum.convertDate2String(
bis,
Datum.TT_MM_JJJJ,
Datum.TRENNER_PUNKT,
Datum.TRENNER_PUNKT);
String hql2 = "from KAK01Aufn ";
boolean erster = true;
while(idTeileIterator.hasNext()){
KAIDTeil teil = (KAIDTeil)idTeileIterator.next();
if(erster){
erster=false;
hql2 += " where ( ";
}
else{
hql2 += " OR (";
}
hql2+= " kaIdTeil=" + teil.getId().longValue();
if(von != null){
hql2 += " AND aufnDat >= '"
+ datumVon + "' ";
}
if(bis!= null){
hql2 += " AND aufnDat <= '" + datumBis + "'";
}
if(bearbKz!=null){
hql2 += ") ";
}
else{
hql2 +=" AND bearbKz='" + bearbKz + "') ";
}
if(bearbKz!=null){
hql2 += ") ";
}
else{
hql2 +=" AND bearbKz='" + bearbKz + "') ";
}
}//Ende der iteration der IDTeile
hql2 += " ORDER by aufnDat";
Iterator it1 = super.find(hql2).iterator();
}
Natürlich bekomme ich jetzt den Fehler das JJJJ-MM-TT ein ungültiges Format für Oracle ist.
Meine Testfälle verwenden jedoch dieses Format und Hibernate soll ja so portierbar sein.
Habe es auch schon mittels
Code:
Criteria criteria = session.createCriteria(KAK01Aufn.class);
if (startDate != null) {
criteria.add(Expression.ge("aufnDat",von);
}
if (endDate != null) {
criteria.add(Expression.le("aufnDat",bis);
}
List results = criteria.list();
versucht, bekomme dann aber bei dem Query das Date im Query als das toString() Date.
Kann mir jemand sagen wie ich das Query aufbauen muss?
Vielen Dank DreamArtist