【发布时间】:2012-07-23 22:26:57
【问题描述】:
我有 Postgres DB、带有 JPA 2.0 的 Java 和 eclipseLink。
在我的 To 对象中:
@Column(name = "mask")
private Boolean mask;
在数据库中: 掩码位(4) DEFAULT B'1000'::"bit",
当我想压住物体时:
原因:org.postgresql.util.PSQLException:错误:列“掩码”是位类型,但表达式是布尔类型 提示:您需要重写或转换表达式。
我尝试在 TO 课上: - 布尔值 - 位集(4) - 细绳 - 整数 - 字符
我尝试使用 BitSet,这些: 反对: @Column(name = "掩码") 私有位集掩码;
public BitSet getMask() {
BitSet work = new BitSet(4);
work.set(0);
if (mask == null){
return work;
}
return mask;
}
public void setMask(BitSet mask) {
BitSet work = new BitSet(4);
work.set(0);
if (mask== null) {
this.mask= work;
} else {
this.mask= mask;
}
}
我怎样才能让它工作?
布尔方法不好,存储1位。 我在谷歌搜索,失去了论坛。
经过 5 小时的谷歌搜索,我发现: http://archives.postgresql.org/pgsql-bugs/2005-05/msg00014.php
关于 postgres 的一个 BUG:
“有一个名为“BIT”的 JDBC 类型实际上映射到一个布尔类型是非常令人困惑的。如果您假设 JDBC 的 BIT 与名为“bit”的服务器类型没有,而且他们的名字相同只是巧合,那么事情应该会更清楚。”
【问题讨论】:
标签: postgresql jpa-2.0 eclipselink