当前位置: 首页 > 知识库问答 >
问题:

Spring Data JPA基于时间戳列获取数据

钱青青
2023-03-14

如何在具有时间戳类型的列上使用Spring data JPA从表中检索数据。数据库是mySQL

列定义

last_update timestamp

域对象

public class Film implements Serializable {
    @Column(name="last_update")
    private Timestamp lastUpdate;

    public Timestamp getLastUpdate() {
        return this.lastUpdate;
    }

    public void setLastUpdate(Timestamp lastUpdate) {
        this.lastUpdate = lastUpdate;
    }
}

Spring数据JPA代码

@Repository                                                        
public interface FilmRepository extends CrudRepository<Film, Integer> 
{
    Film findByLastUpdate(Date date);
}

服务等级

@Override
public Film readFilmbyDate(){
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
    Film film=null;
    try {
        film= filmRepository.findByLastUpdate(sdf.parse(sdf.format(new Date())));
    } catch (ParseException e) {
        e.printStackTrace();
    }
    return film;
}

由于DB列有一个时间戳(2017-05-07 06:45:19),因此它总是返回null,基本上我想返回所有最后更新日期为今天/当前日期的记录。

共有1个答案

庄康胜
2023-03-14

将您的方法更改为findByLastUpdateinter(Date date, Date后)并传入您要查找的日期的开头和结尾。如果您在java 8上,您可以添加默认方法从一个输入日期创建日期并调用findLastUpdateinter,否则,您可以使用自定义实现。

 类似资料:
  • 有两个这样的数据帧(示例) df1 df2 然后,我想加入df1和df2,但是我不知道如何做到这一点,因为在第二个df中我只有开始和结束时间。如何根据第二个df的数据将条件放在第一个df上? 这就是我想要的

  • 我是sqlite3新手,我创建了一个名为result的sqlite3数据库,它有一个_时间表,根据我从Splunk查询的历元时间列出IP地址。我试图从sqlite3数据库中获取基于_time(历元时间)表的数据。 以下是sqlite3数据库中列出的_时间和IP地址的副本: 问题是,不管我尝试过什么命令,它总是输出所有的IP地址。我只需要x天数(30天前)的IP地址。我在网上看了很多例子,但仍然没有

  • 我每天都在cassandra中存储时间序列数据。我们希望每天归档/清除超过2天的数据。我们正在使用Hector API来存储数据。有人能建议我每天删除超过2天的cassandra数据的方法吗?对cassandra行使用TTL方法是不可行的,因为删除数据的天数是可配置的。现在表格中没有时间戳列。我们计划添加时间戳列。但问题是,时间戳不能单独用于where子句,因为这个新列不是主键的一部分。请提供您的

  • 问题内容: 我有一个表,该表在sqlite3中有一个带有时间戳的列。默认为,这样当插入行时,将插入当前时间。现在,我试图获取两天或更早之前插入的行。我想知道这是否有意义。 阅读我想到的文档: 但是显然那是错误的。我提出此查询,是因为它类似于我在实际代码中进行测试的方式: 。 但是我希望sqlite3包含一些针对这种情况的内置检查。 谢谢,我感谢您的任何答复。 编辑 :弄清楚了: 如果有人能提出更好

  • 问题内容: 通过将值放入构造函数中,我可以将unix时间戳转换为对象。例如:我可以将其作为。 但是在那之后,如何从该对象取回unix时间戳? 问题答案: 检索自格林尼治标准时间1970年1月1日传递给构造函数以来的毫秒数。从中获得Unix时间(相同,但以秒为单位)并不难。

  • 问题内容: 我想要这样的当前时间戳: 1320917972 问题答案: 解决方案是: