2016-01-28 100 views
1

如何使用條件生成器正確地(以日期格式)字符串日期orderBy?因爲我的模型中存儲的日期是字符串。如何訂購字符串日期? CriteriaBuilder

我的模型:

@Column(name = 「DATE_TIME」)

私人字符串日期時間;

當我嘗試查詢它。

CriteriaBuilder cb = JPA.em().getCriteriaBuilder(); 
    CriteriaQuery<T> cq = cb.createQuery(Pickup.class); 
    Root<T> root = cq.from(Pickup.class); 
    CriteriaQuery<T> all = cq.select(root); 

    cq.orderBy(cb.desc(root.get("dateTime"))); 

我得到了錯誤的訂單,我怎樣才能讓我的字符串日期格式然後orderBy呢?我很新,能有人幫助我嗎?提前致謝。

+4

不要將日期存儲爲字符串。 –

+0

但它有大量的數據並將其更改爲日期格式可能會導致問題。 –

回答

0
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("YOURPATTERN"); 
CriteriaBuilder cb = JPA.em().getCriteriaBuilder(); 
CriteriaQuery<T> cq = cb.createQuery(Pickup.class); 
Root<T> root = cq.from(Pickup.class); 
CriteriaQuery<T> all = cq.select(root); 
cq.orderBy(cb.desc(dateTimeFormatter.parseDateTime(root.get("dateTime")))); 

您可以使用DateTimeFormatter將dateTimeString轉換爲DateTime。