轉換日期時間爲長戳我有兩列的實體:在JPQL
// time when the event happened (stored in UTC)
@Temporal(TemporalType.TIMESTAMP)
private Date eventTime;
// timezone offset in milliseconds
// so local millis are eventTime.getTime() + offset
@Basic
private int offset;
看來,JPQL查詢I can't use something像WHERE eventTime + offset > :parameter
。但是是否可以通過在某種程度上將eventTime
鑄造成很長時間來解決問題?當然,有一個使用原生查詢的選項...
編輯: 它在標準中不被支持,在OpenJPA文檔中沒有提到,因此目前可能不可能。
PostgreSQL不支持計算列AFAIK(http://stackoverflow.com/questions/8250389/computed-calculated-columns-in-postgresql)。讓它實際存儲在數據庫中1)打破規範化; 2)需要大量的存儲空間(這個表最終可能會有數十億行,而且實際上有兩個時間戳,所以每行增加16個字節是一個壞主意)。實際上,用時間戳+偏移量替換偏移列會更好一些。使用視圖也可能是一個好主意。 –