Hibernate按日期查询示例

时间:2012-02-23 20:07:30

标签: java sql hibernate

我正在使用Hibernate的Example类来查询与示例不匹配的对象。只要我的Hibernate类型没有日期,一切正常。但是,当我的Hibernate类型中有日期时,Example永远不匹配。 (因为它不是,我总是会收到查询中不应出现的对象。)

这是我正在执行的代码

Criteria criteria = databaseSession.createCriteria("Person");
criteria.add(Restrictions.not(Example.create(sqlEntity).excludeNone()));
List entities = criteria.list();
// entities contains more objects than it should

如果我从hbm.xml文件中注释日期属性,则查询将按预期工作。

<class entity-name="Person">
    ...
    <!-- This property is causing the Example to not match. -->
    <property name="date" type="date">
        <column name="Date"/>
    </property>
</class>

sqlEntity对象具有日期精度(即时间值为00:00:00)。这是sqlEntity对象中提供的所有内容。这也是date属性具有日期类型而不是时间戳的原因。 SQL表中的实际行具有毫秒精度和不等于00:00:00的时间。

如何在日期时间列上以毫秒精度执行此示例查询?

顺便说一下,我调试了sqlEntity的日期值以及entities中由于日期而不应该出现的对象的日期值。在这两个对象上调用Object.equals()将返回true

0 个答案:

没有答案