Spring按日期查询日期时间

时间:2016-12-20 16:30:22

标签: java spring date datetime spring-data

我是一个相当新的春天,所以也许我错过了错误的术语,这就是为什么我的搜索没有带来什么。

我正在寻找的查询应该获取父对象并删除时间戳不是特定日期的所有Child对象。

Parent Id field1 field2

Child: Id parentId field 1 timestamp (datetime)

我尝试了几种不同的方法,但似乎没有任何效果。

或者我可以尝试类似的事情:

FindAllChildsByIdAndTimestamp(int id, Date date)

用数据填充空父。但事件帽不起作用。 任何想法我做错了什么? 最好的,谢谢你

2 个答案:

答案 0 :(得分:0)

您甚至不需要将父母带入此中。您需要做的就是在子表上创建一个查询,并在该表上生成一个查询,其中where子句将是parentId,而时间戳是。你提到你正在使用Spring(哪个版本的BTW?)但是没有说你用什么来访问你的数据库(Spring Data,Hibernate,JPA,JBC?)另外哪个DB和哪个版本?我将在Hibernate中给你举例:

sessionFactory.getCurrentSession().createCriteria(Child.class)
                .add(Restrictions.eq("parentId", yourParentId))
                .add(Restrictions.gt("timestamp", date1))
                .add(Restrictions.le("timestamp", date2))
                .list();

date1是您当天的午夜,date2是第二天的午夜。这应该会给你孩子的名单

答案 1 :(得分:0)

我通过分离这两个请求解决了这个问题。

previous_in_queue

然后将其归因于父母

public interface ChildRepository extends CrudRepository<Child, Serializable> {
List<child> findAllBytimeStampBetweenAndParent(Date dayBegin, Date dayEnd, Parent parent);

作为替代方案我可以使用直接查询。 this discussion about non standard sql commands