Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HQL(hibernate)时间戳范围匹配_Java_Hibernate_Timestamp_Hql - Fatal编程技术网

Java HQL(hibernate)时间戳范围匹配

Java HQL(hibernate)时间戳范围匹配,java,hibernate,timestamp,hql,Java,Hibernate,Timestamp,Hql,我需要编写一个查询来获取一个时间范围内的对象,当前该查询如下所示: Timestamp from = ... Timestamp to = ... getHibernateTemplate().find("from " + Person.class.getName() + " ml where ml.lastModifiedOn>="+from.toString()+" and m1.lastModifiedOn<=" + to.toString()); Timestamp f

我需要编写一个查询来获取一个时间范围内的对象,当前该查询如下所示:

Timestamp from = ... 
Timestamp to = ...

getHibernateTemplate().find("from " + Person.class.getName() + " ml where ml.lastModifiedOn>="+from.toString()+" and m1.lastModifiedOn<=" + to.toString());
Timestamp from=。。。
时间戳到=。。。

getHibernateTemplate().find(“from”+Person.class.getName()+“ml其中ml.lastModifiedOn>=“+from.toString()+”和m1.lastModifiedOn如果在数据库中表示为long,则只需在比较中传递一个
long
from.getTime()


否则您可以使用这些函数:
second(…)、minute(…)、hour(…)、day(…)、month(…)和year(…)
您只需在比较中传递一个
long
from.getTime()
),如果它在数据库中表示为long


否则,您可以使用以下功能:
秒(…)、分钟(…)、小时(…)、日(…)、月(…)和年(…)
这样的功能怎么样

    String sql = "from " + Person.class.getName() + " ml where ml.lastModifiedOn>= ? and m1.lastModifiedOn<= ?";
    Date from = ...;
    Date to = ...;

    getHibernateTemplate().find(sql, new Object[] {from,to});

String sql=“from”+Person.class.getName()+“ml where ml.lastModifiedOn>=?和m1.lastModifiedOn类似的东西怎么样

    String sql = "from " + Person.class.getName() + " ml where ml.lastModifiedOn>= ? and m1.lastModifiedOn<= ?";
    Date from = ...;
    Date to = ...;

    getHibernateTemplate().find(sql, new Object[] {from,to});

String sql=“from”+Person.class.getName()+“ml,其中ml.lastModifiedOn>=?和m1.lastModifiedOn当前查询中缺少单引号。以下操作应有效:

from Person ml where ml.lastModifiedOn 
between '2010-02-12 16:00:21.292' and '2010-02-12 23:00:21.292' 
请注意,我不知道为什么不将
Date
实例传递给以下查询:

from Person ml where ml.lastModifiedOn between :from and :to 

您是否在此处使用
java.sql.Timestamp
?如果是,则不应使用。

当前查询中缺少单引号。以下操作应有效:

from Person ml where ml.lastModifiedOn 
between '2010-02-12 16:00:21.292' and '2010-02-12 23:00:21.292' 
请注意,我不知道为什么不将
Date
实例传递给以下查询:

from Person ml where ml.lastModifiedOn between :from and :to 

您在这里使用的是
java.sql.Timestamp
吗?如果是,您不应该使用。

如果您想在两者之间查询某些内容,您可以执行以下操作:

 public List findPerson() {
   Date from = ...;
   Date to = ...;
   return entityManager.createQuery(
     "SELECT p from Person p WHERE p.lastModifiedOn BETWEEN ?1 AND ?2")
     .setParameter(1,from, TemporalType.DATE)
     .setParameter(2,to, TemporalType.DATE).getResultList();
}

您可能需要将
TemporalType.DATE
更改为您正在使用的任何内容

如果您想在这两个时间段之间查询某些内容,可以执行以下操作:

 public List findPerson() {
   Date from = ...;
   Date to = ...;
   return entityManager.createQuery(
     "SELECT p from Person p WHERE p.lastModifiedOn BETWEEN ?1 AND ?2")
     .setParameter(1,from, TemporalType.DATE)
     .setParameter(2,to, TemporalType.DATE).getResultList();
}

您可能需要将
TemporalType.DATE
更改为您在数据库中使用的任何对象,它表示为DATETIME,而不是那么长。我如何使用这些函数进行完整的DATETIME匹配?在数据库中,它表示为DATETIME,而不是那么长。我如何使用这些函数进行完整的DATETIME匹配?我试过了,得到了答案错误。[错误]13:58:03解析器-无效路径:“m1.lastModifiedOn”[错误]13:58:03解析器-:0:0:意外的子树结尾[错误]13:58:03解析器-二进制运算符的左侧操作数为null org.springframework.orm.hibernate3.HibernateQueryException:无效路径:“m1.lastModifiedOn”[from it.Person-ml其中ml.lastModifiedOn>=?和m1.lastModifiedOn=?和m1.lastModifiedOn我尝试了这个方法,但得到了一个错误。[错误]13:58:03解析器-无效路径:“m1.lastModifiedOn”[error]13:58:03解析器-:0:0:意外的子树结尾[错误]13:58:03解析器-二进制运算符的左侧操作数为null org.springframework.orm.hibernate3.HibernateQueryException:无效路径:“m1.lastModifiedOn”[从it.Person ml中,其中ml.lastModifiedOn>=?和m1.lastModifiedOn=?和m1.lastModifiedOn=?是的,我基本上在整个项目中都使用时间戳,尽管这样做有效:时间戳from=…;时间戳to=…;DetachedCriteria criteria=DetachedCriteria.forClass(Person.class);criteria.add(Restrictions.between(“lastModifiedOn”,from,to));List results=getHibernateTemplate().findByCriteria(标准);是的,我在整个项目中基本上都使用时间戳,尽管这样做有效:时间戳from=…;时间戳to=…;DetachedCriteria criteria=DetachedCriteria.forClass(Person.class);criteria.add(Restrictions.between(“lastModifiedOn”,from,to));列出结果=getHibernateTemplate().findByCriteria(标准);