如何在PostgreSQL表中存储Java布尔类型变量,并将相应的列数据类型定义为" bit"?

时间:2017-07-28 14:00:41

标签: java postgresql hibernate

现在,我的Java类中变量的数据类型是" boolean"。我想将它存储在PostgreSQL表中。我想要存储数据的列的数据类型定义为" bit"。但是当我尝试保存具有此布尔变量的对象时,我得到错误:

ERROR: column "isdeleted" is of type bit but expression is of type boolean

我使用Hibernate存储数据。 我的代码片段用于定义和映射我的变量:

@Column(name = "isDeleted")
private boolean isDeleted;

如何保存我的对象?谢谢!

3 个答案:

答案 0 :(得分:1)

尝试使用BOOLEAN数据类型,定义你的@Column注释:

function buildIndex(…) {
  …
  var promises = paths.map(function(path) {
    if (isDir(path)) {
      return buildIndex(…);
    } else {
      return JSDOM.fromFile(…).then(…);
    }
  });
  return Promise.all(promises).then(…);
}

另外,我认为在NHibernate中,列类型是TrueFalse,它期望' T'或者' F'。 您需要将列类型更改为布尔值。试试这个link

答案 1 :(得分:1)

请在Postgres中使用正确的boolean类型。虽然可以在比特流中存储布尔值,但后来的使用会变得复杂。

通常boolean你可以这样做:

SELECT * FROM table WHERE isdeleted;

对于bit类型,您必须执行按位操作:

SELECT * FROM table WHERE isdeleted > B'0'

答案 2 :(得分:0)

尝试在代码中添加PostgreSQL方言 “ org.hibernate.dialect.PostgreSQLDialect”