java - 我无法使用 Hibernate 和 Spring Boot 按 Instant 订购
问题描述
我想从表中检索 10 个最近更新的实体。该模型有一个
@LastModifiedDate
@Column(name = "updated_at")
private Instant updatedAt;
因此,我的方法是有一个存储库方法,如
findTop10ByOrderByUpdatedAtDesc();
它被翻译成类似的东西
select [bunch of properties and so on] order by model0_.updated_at desc limit ?
此查询确实返回 10 个元素。但是,结果没有排序。我也找不到任何错误消息或警告。由于该项目使用休眠,因此 Instant 在 mySQL DB 中作为 TimeStamp 持久保存。序列化和反序列化工作正常。
我已采取的步骤:
- 通过不同的属性排序来检查排序原则上是否有效:它确实
- 使用 EntityManager 中的构建器手动构建查询:同样的问题
- 使用 @Query 注释手动构建查询:同样的问题
似乎一切正常,除了结果没有排序。我知道 JPA 不支持 Instants,但是 Hibernate 添加了这种支持。我正在使用 Spring Boot 2.0.3、Hibernate 5.6.0.Final 和一个 mySQL DB。
有什么想法,可能有什么问题,或者只是不支持使用休眠对 Instant 进行排序?
PS:如您所见,这是我的第一篇 stackoverflow 帖子。随时告诉我,如何改进我的问题。
解决方案
推荐阅读
- security - 带有命令提示符的 WiFi 密码 windows 8.1
- android - 如何修改Android快捷方式标题?
- python - 有没有办法将包含多个 tensorflow 模型的烧瓶应用程序部署到 pythonanywhere 网络平台上?
- python - 如何从作为字典列表的键值中删除前导空格
- python - 在函数之外调用变量?
- agora.io - Agora-SDK [错误]: [866CE]None Ice Candidate 不允许
- reactjs - 在功能组件测试笑话和酶中模拟一个内部函数
- interface - 如何在codeandbox中将控制台面板右对齐?
- c++ - 从带有空格分隔符的文本文件中将对象读入数组
- javascript - 如何更改 JavaScript 中日期选择的语言?