Bei der Verwendung von Hibernate kann es normalerweise den Typ Ihrer Parameter herausfinden, indem es entweder die Eigenschaft betrachtet, gegen die es gerichtet ist, oder Hibernate scheint bestimmte Typen standardmäßig zu erkennen (z. B. java.util.Date).
Ich habe jedoch einige Abfragen, die Funktionen verwenden (dateadd). In diesen Abfragen schlägt die Verwendung eines Objekts mit einem benutzerdefinierten Typ fehl (Hibernate scheint es auf BINARY vorzugeben, wenn es den Typ nicht herausfinden kann). Ich muss den richtigen Hibernate-"Typ" an den Abfrageparameter übergeben.
Dies wird scheitern
Query query = session.createQuery( hql );
query.setParameter( "now", new LocalDateTime() );
return query.list();
Dies wird funktionieren (Typ explizit eingestellt)
Query query = session.createQuery( hql );
query.setParameter( "now", new LocalDateTime(), Hibernate.custom( LocalDateTimeType.class ) );
return query.list();
Dies funktioniert auch (mit java.util.Date)
Query query = session.createQuery( hql );
query.setParameter( "now", new Date() );
return query.list();
Gibt es eine Möglichkeit, wie ich Hibernate dazu bringen kann, LocalDateTime als einen Typ zu erkennen, den es sofort verarbeiten kann, ohne jedes Mal daran denken zu müssen, den Typ explizit zu übergeben?
Danke.