【问题标题】:Select as boolean using PostgreSQL 'crypt()' function使用 PostgreSQL 'crypt()' 函数选择为布尔值
【发布时间】:2021-08-23 13:37:52
【问题描述】:

我正在尝试使用 jOOQ 复制以下 SQL 查询,但遇到了一些错误。我想看看是否可以直接替换,然后再根据需要重新处理查询,所以只是寻找一些建议。

SELECT
    user_password_hash = crypt(?, user_password_hash) AS is_password_match
    roles
FROM system_users
WHERE user_name = ?;

我尝试了以下 jOOQ 替换,尽管它存在编译错误:

DSL.using(connection, SQLDialect.POSTGRES)
    .select(SYSTEM_USERS.USER_PASSWORD_HASH.equal(crypt(password, SYSTEM_USERS.USER_PASSWORD_HASH.getName())), SYSTEM_USERS.ROLES)
    .from(SYSTEM_USERS)
    .where(SYSTEM_USERS.USER_NAME.equal(userName));

我认为问题在于#select() 调用的第一部分被解决为条件,而不是字段。但我不确定如何最好地使用 #equal() 调用使其成为字段。

有人有什么想法吗?

【问题讨论】:

    标签: java postgresql jooq


    【解决方案1】:

    使用DSL.field(Condition)Condition 转换为Field<Boolean>

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 2011-04-12
      • 1970-01-01
      • 2021-01-29
      • 1970-01-01
      • 2015-05-30
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      相关资源
      最近更新 更多