我正在使用HQL检索包含Date字段的一堆对象。 问题是每次运行我的进程时Hibernate都会返回不同的java.util.Date。
这是我的实体的简化版本:
@SuppressWarnings("unchecked")
private List<MyEntity> retrieveMyEntities(List<String> idsToRetrieve)
{
Query query = session.createQuery("from MyEntity i where i.id in (:params)");
query.setParameterList("params", idsToRetrieve);
return query.list();
}
Postgres上的“MY_DATE”列是一个简单的“日期”列(因此,没有时间戳)。
这是我用来检索对象的方法:
retrieveMyEntities
我负责在此方法调用之外打开和关闭会话。
每次运行我的流程时,我都会得到与我在数据库中实际看到的不同的日期 (但这可能是由于时区设置不同,所以我并不在乎), 与每个流程不同 (这很令人担忧......)。
这是一个示例,将单个对象作为测试用例。 我运行了3次。
第一个流程运行:
retrieveMyEntities
... 第二个流程运行:
retrieveMyEntities
... 第三个流程:
<iq type="get" id="hichic@macintosh">
<retrieve
xmlns="urn:xmpp:archive" with="group12@conference.macintosh">
<set
xmlns="http://jabber.org/protocol/rsm">
<max>100</max>
</set>
</retrieve>
</iq>
... TL; DR
为什么我的进程每次运行时都会从数据库中检索不同的日期? 我正在使用PostgreSQL 9.4,Hibernate 5和Java 1.7。