PostgreSQL:列“BOOLEAN_VALUE”的类型为numeric,但表达式的类型为boolean Hint:您需要重写或转换表达式

时间:2018-05-10 13:02:11

标签: java postgresql hibernate spring-mvc spring-data

我试图将新数据插入到两个数据库服务器中。 这个适用于Oracle 11g,但在PostgreSQL 9+中不起作用。 我无法追踪错误所说的问题:

列“BOOLEAN_VALUE”的类型为numeric,但表达式的类型为boolean Hint:您需要重写或转换表达式。

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

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);

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

1 个答案:

答案 0 :(得分:1)

PostgreSQL不会自动将int自动转换为布尔值,最终你可以创建自己的转换函数。

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