PostgreSQL: столбец "BOOLEAN_VALUE" имеет тип числовой, но выражение имеет тип логический Подсказка: вам нужно будет переписать или привести выражение - PullRequest
0 голосов
/ 10 мая 2018

Я пытался вставить новые данные на оба сервера базы данных. Этот работает в Oracle 11g, но не работает в PostgreSQL 9+. Я не могу отследить проблему, так как ошибка говорит:

столбец "BOOLEAN_VALUE" имеет тип numeric, а выражение имеет тип boolean Подсказка: вам нужно будет переписать или привести выражение.

Столбец обнуляем и в приведенных ниже кодах мы не устанавливаем никаких данных.

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 голосов
/ 10 мая 2018

PostgreSQL не выполняет автоматическое приведение int к логическому значению, в конечном итоге вы можете создать собственную функцию приведения.

См .: https://www.postgresql.org/docs/9.4/static/sql-createcast.html

...