Select 作为布尔值使用 PostgreSQL 'crypt()' 函数

Select as boolean using PostgreSQL 'crypt()' function

我正在尝试使用 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() 调用使其成为一个字段。

有没有人有什么想法?

使用DSL.field(Condition)Condition变成Field<Boolean>