Скажем, у вас есть класс с полем java.util.Date. Может быть, класс класса "Кому" или "Планировщик событий".
@Temporal(TemporalType.TIMESTAMP)
private Date startTime;
Это будет отображаться в столбце datetime в MySQL.
Существуют случаи, когда вы хотите точно знать, когда происходит это событие. "Что запланировано на 11 августа 2011 года в 8 часов вечера?"
Иногда вам просто нужно знать, какие события запланированы на определенную дату. "Что запланировано на 11 августа 2011 года?"
Если ваш JPAQL:
SELECT blah blah etc. WHERE ti.startTime = :d1
а параметр - экземпляр java.util.Date:
query.setParameter("d1", date, TemporalType.DATE);
ваши результаты будут ограничены датой, но также время.
Это такой распространенный случай использования, что я удивлен, что нет простого способа сделать это даже в JPA 2.0.
Я бы предпочел не использовать конкретный хакер или не играть со строками/подстроками.
Как вы решили эту проблему?