Hallo,
Folgende Fehlermeldung:
"org.hibernate.engine.jdbc.spi.SqlExceptionHelper [http-bio-8080-exec-4] ERROR Die Datentypen time und datetime sind im less than-Operator inkompatibel." //gleiches gilt für greater than
Microsoft SQL SERVER 2008(10.50.1600.1) Connector: sqljdbc4
Criteria API:
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<BuchungStundenabrechnung> criteriaQuery = criteriaBuilder.createQuery(BuchungStundenabrechnung.class); Root<BuchungStundenabrechnung> buchungen = criteriaQuery.from(BuchungStundenabrechnung.class); criteriaQuery.where(criteriaBuilder.lessThan(buchungen.get(BuchungStundenabrechnung_.ende), ende)); //ende = java.sql.Time TypedQuery<BuchungStundenabrechnung> q = entityManager.createQuery(criteriaQuery); return q.getResultList();
BuchungStundenabrechnung Entity: private java.sql.Time ende;
@Column(name="Ende") public java.sql.Time getEnde() { return ende; }
SQL Server: Feldname: Ende Datentyp: time(0)
Es scheint als würde der Wert von "ende" automatisch von Time in Datetime umgewandelt und damit dann eine Abfrage versucht.
Setze ich den Datentypen auf dem SQL Server auf Datetime, dann gibt es keine Probleme bei der Abfrage!
Hoffe ihr könnt mir weiterhelfen, hab vergeblich im Netz gesucht zu dem Problem.
Gruß Markus
|