给定一个像“192.168/16”这样的 CIDR 字符串,我想检查我的 PostgreSQL 表中的 IP 地址是否包含在其中。
我将编写的 SQL 大致如下:
SELECT ip
FROM ip_mac
WHERE ip << inet('192.168/16');
我们的应用程序使用 Hibernate。我已经定义了一个将字符串转换为 Inet 类型的 UserType。<<
在查询 IP 地址时,我需要能够使用和其他。
- 如何让 Hibernate 渲染
<<
运算符? - 如何让 Hibernate 进行渲染
inet(CIDR_STRING)
?
我希望能够使用 Criteria API 来执行此操作,因为其他条件也可能是查询的一部分。我见过这个,但解决方案涉及使用本机 JPA 查询和强制转换。我宁愿在可能的情况下坚持使用 Java 语义。