如何在JPA查詢中表示日期,而不使用(鍵入)參數?
如果日期是真正固定的(例如,1980年3月1日),代碼:JPA日期字面量
TypedQuery<MyEntity> q = em.createQuery("select myent from db.MyEntity myent where myent.theDate=?1", db.MyEntity.class).setParameter(1, d);
具有設置:
日期d =新日期(80,Calendar.MARCH,1) ;
相當冗長,不是嗎?我想將1980/1/3嵌入到我的查詢中。
UPDATE: 我改性樣品日期1980年1月3日,1980年1月1日,因爲它被,不明確的。
我得到以下異常:org.hibernate.QueryException:意外的字符: '{'[從db.MyEntity myent選擇myent其中myent.thedate = {d '2011-11-29'} ...這似乎關於使用花括號語法的可能性的相當嚴重的問題:-(:-) – AgostinoX
你輸入的確切查詢是什麼? –
這就是確切的查詢:select myent from db.MyEntity myent where myent.theDate = {d'1980-03-01'}。但情況甚至更糟:這是有效的:從db.MyEntity myent中選擇myent where myent.theDate ='1980-03-01'但是在這種情況下,03將被視爲日期而不是月份。 – AgostinoX