java - Jooq Postgres 可变位

标签 java postgresql bit jooq

我正在调查 Jooq 并发现了一些我找不到的文档 - 没有一个能真正回答我的问题。

我想做的是在表格中有一列 权限变化位(2000)(Postgres 9.5+)

然而,Jooq 对此所做的是将其视为 varchar...即使在生成时,这显然也是不正确的。在这样的事情上成功的最短路径是什么。

最佳答案

我不再确定映射 PostgreSQL 的 "bit string" 的设计决定是什么类型为 java.lang.String 了。我什至不排除一个疏忽,即即使它们被称为“位串”,它们也不是真正的串。

我怀疑最适合表示它的 Java 类型是 BitSet。因此,您理想的前进方式是实现 data type binding形式:

public class VaryingBitBinding extends Binding<String, BitSet> {
    // ...
}

并在 JDBC 级别实现它。然后您可以将此绑定(bind) Hook 到您的代码生成器中:

<forcedType>
    <userType>java.util.BitSet</userType>
    <binding>com.example.VaryingBitBinding</binding>
    <types>varying\ bit</types>
</forcedType>

关于java - Jooq Postgres 可变位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40800355/

相关文章:

java - 将 Jackson 添加到 POM 会导致 JsonProcessingException 出现 NoClassDefError

java - 进行单元测试时来自 Mockito 的 MissingMethodInitationException

postgresql - PostGIS:线串长度

java - 获取错误 java.lang.ArrayIndexOutOfBoundsException : too much data for RSA block

java - 如何将 java.util.sql 存储到 XMLGregorianCalendar

java - 我应该将哪个 JDBC jar 与 java 1.5.0_16 和 PostgreSQL 8.3.5 一起使用?

sql - 如何将线串分割成单独的线段?

java - 位掩码的规则是什么?就像 0xFF 与 0xFC

c - 基数右边的分数 - float 转换

C++ 位操作。 6 个整数合为一个 unsigned long long