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

使用Micronaut Data JDBC,如何转换WHERE子句的值?

邵劲
2023-03-14
public class User {
    @Id
    @ColumnTransformer(read = "BIN_TO_UUID(user_.id)", write = "UUID_TO_BIN(?)")
    private UUID id;

    // ...
}
@JdbcRepository(dialect = Dialect.MYSQL)
public interface UserRepository extends RxJavaCrudRepository<User, UUID> {
}
15:17:04.878 [pool-1-thread-76] DEBUG io.micronaut.data.query - Executing Query: SELECT BIN_TO_UUID(user_.id) AS id,user_.`username` FROM `user` user_ WHERE (user_.`id` = ?)

共有1个答案

章振
2023-03-14

我相信这是Micronaut-Data 1.1.3中的一个bug。

作为一种变通方法,我将重写该查询,如下所示:

@ReadOnly
@Override
@Query(
   "SELECT * FROM user WHERE user.id = :id")
Optional<User> findById(UUID id);

在UserRepository接口中。

 类似资料:
  • 问题内容: 如何转换字符串字段并用于Where子句。 衬板是varchar2 例外:无效的数字 问题答案: 仅在数字时比较 或简单:

  • 问题内容: 我正在尝试在SQL Server中执行以下查询: 显然这会导致错误,因为无法将“ asdas”转换为。虽然,我期待一个不同的行为。也就是说,因为为假,所以我期望SQL不检查第二个条件,但显然可以。 我知道还有其他一些方法可以执行此查询,但这不是我的问题。我想知道是否有某种方法可以不检查第二个条件,即第一个条件不满足。我很好奇,因为我认为SQL已经做到了这一点。 问题答案: SQL Se

  • 问题内容: 我正在尝试搜索文本和备注的多列,以查找某些我不想看到的特定短语和黑名单短语。 假设下表 前任。我想找到所有提到(在任何领域中)“苹果”但黑名单中的“苹果酱”的故事。 如何在where子句中使用别名?我找不到有关此主题的任何文档: 1)这种方法可行吗? 2)替代方法是否意味着我将在每次行迭代中执行多个字符串连接? 问题答案: 我不能在where子句中使用别名。 这种方法可行吗? 当然,将

  • 问题内容: 我已经让用户在表中输入需要查询的值列表。该列表可能非常大,并且在编译时长度未知。而不是使用我在想的是,使用临时表并对其执行联接会更有效。我在另一个SO问题中阅读了此建议(目前无法找到,但在编辑时会进行编辑)。 要点是这样的: 如果我有两个同时进行,如果线程2尝试在线程1之后创建TEMP表,我不会收到错误消息吗? 我应该为TEMP表随机生成一个名称吗? 或者,如果我将整个内容包装在交易中

  • 问题内容: 为什么不能在where子句中使用临时列? 例如,此查询: 这将显示两列,一列称为,另一列称为。是即时创建的,始终为1或0,具体取决于是否有50个或该品牌的产品。 这一切对我来说都是有意义的,除了我不能仅在以下查询中选择时: 这给了我这个错误: 问题答案: 使用来代替: 被评估 前 的。被评估之后。

  • 本章提供了有关如何使用JDBC应用程序从表中选择记录的示例。 这将在从表中选择记录时使用WHERE子句添加其他条件。 在执行以下示例之前,请确保您具备以下示例 - 要执行以下示例,您可以使用实际用户名和密码替换用户名和密码。 您的MySQL或您正在使用的任何数据库已启动并正在运行。 所需的步骤 (Required Steps) 使用JDBC应用程序创建新数据库需要以下步骤 - Import the

  • 由于在抽象中解释我要做什么有点困难,所以我克隆了spring-boot-sample-data-jpa项目,并对其进行了修改,以展示我正在尝试做什么的示例。 我有这些模型类,您将注意到和扩展了实体。 我正在尝试编写一个查询,返回包含或的所有城市,其主要运动是给定类型的。 我编写了一个JPQL版本的查询,它有点难看(我不喜欢部分来表示它是一家水疗酒店),但似乎返回了我想要的。 但该查询的QueryD

  • 问题内容: 我对某些SQL Server查询有问题。原来,我有一个带有“ Attibute_Name”和“ Attibute_Value”字段的表,该表可以是任何类型,存储在varchar中。(是的,我知道。) 特定属性的所有日期似乎都以“ YYYY-MM-DD hh:mm:ss”格式存储(对此不确定100%,此处有数百万条记录),因此我可以毫无问题地执行此代码: 但是,如果我执行以下代码: 我将