gpt4 book ai didi

java - ORMLite 如何使用两个日期列进行查询,其中一个为空或小于另一个

转载 作者:行者123 更新时间:2023-12-02 11:28:34 25 4
gpt4 key购买 nike

我正在使用 ORMLite 和 H2,我有一个名为 Student 的数据模型,它有“updatedAt”列/属性,它是日期数据类型(java.util.Date),因此它也保留日期时间信息。然后另一个名为“lastSyncedAt”的日期类型的列/属性,我想让所有学生位于:

  1. lastSyncedAt 为 null,即尚未同步,或者
  2. lastSyncedAt 小于“updatedAt”。

有人可以帮助我如何在 ORMLite 上执行此操作吗? LARAVEL ORM 有类似 where(columnA, 比较运算符, columnB) 的东西,在 ORMLite 中是否有类似的东西或者可以做到这一点。

最佳答案

where(columnA, comparison operator, columnB) is there something similar or that can do this in ORMLite.

你有 RTFM 吗?关于 ORMLite query builder 有很多内容。 。你可以这样做:

qb = studentDao.queryBuilder();
where = qb.where();
where.or(
where.isNull("lastSyncedAt"),
where.lt("lastSyncedAt", new ColumnArg("updatedAt")));
results = queryBuilder.list();

需要注意的几件事:

  • 您如何在 H2 中存储日期?该字段可以与小于进行比较吗?
  • H2 如何处理小于中的 null 值的比较。
  • 如果updatedAt为null会怎样。

第一个问题很关键。 H2 有 timestamp type为了进行比较,需要以特定格式对日期进行编码。取决于您如何创建架构。您还可以使用 ORMlite 的 DATE_LONG type它将日期存储为长整数,当然可以进行比较。

希望这有帮助。

关于java - ORMLite 如何使用两个日期列进行查询,其中一个为空或小于另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49448479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com