PostgreSQL:列“BOOLEAN_VALUE”是数字类型,但表达式是布尔类型提示:您需要重写或转换表达式

Ola*_*lah 5 java postgresql hibernate spring-mvc spring-data

我试图将新数据插入两个数据库服务器。这个可以在 Oracle 11g 中工作,但不能在 PostgreSQL 9+ 中工作。我无法追踪问题,因为错误显示:

列“BOOLEAN_VALUE”是数字类型,但表达式是布尔类型提示:您将需要重写或转换表达式。

该列可以为空,并且在下面的代码中,我们不设置任何数据。

Table Def:(Numeric)
"BOOLEAN_VALUE" NUMBER(1,0)

Domain:
@Column(name = "BOOLEAN_VALUE")
public Boolean getBooleanValue() {
    return booleanValue;
}

public void setBooleanValue(Boolean booleanValue) {
    this.booleanValue = booleanValue;
}

How data insertion:
MyData myData = new MyData();
myData.setMoneyValue("$ 120")
myServiceRepository.save(myData);
Run Code Online (Sandbox Code Playgroud)

我们确实传递了 0 或 1 作为默认值,但没有一个起作用。希望有人能给我一些启发。

rbi*_*rai 1

PostgreSQL 不会自动将 int 自动转换为 boolean,最终您可以创建自己的转换函数。

请参阅:https ://www.postgresql.org/docs/9.4/static/sql-createcast.html