H2 не создает таблицу при использовании @Column (name = "someName", columnDefinition = "FLOAT (10,7)") - PullRequest
0 голосов
/ 03 ноября 2018

Я использую SpringBoot 1.5.14.RELEASE и com.h2database: h2. У меня есть объект, который выглядит следующим образом

//.... annotations here
public class SomeEntity {

    @Id
    private Long id;
    @Column(name = "some_columne_name", columnDefinition = "FLOAT(10,7)")
    private Double someColumnName;
}

H2 начинается с spring.jpa.generate-ddl=true и spring.jpa.hibernate.ddl-auto=create

Но по какой-то причине H2 не создает таблицу, потому что позже в коде, когда запускается запрос на выборку, она выдает SQL Error:42102, Table not found

если я запускаю H2 без columnDefinition в сущности, тогда она успешно создает таблицу

Как создать таблицы в H2 с columnDefinition в сущностях?

1 Ответ

0 голосов
/ 03 ноября 2018

В соответствии с документацией H2 Типы данных правильный формат FLOAT (PrecisionInt) и не FLOAT (PrecisionInt, PrecisionInt). Поэтому все, что вам нужно сделать, это изменить часть определения столбца, и она будет работать.

например. @Column(name = "some_columne_name", columnDefinition = "FLOAT(10)")

Что касается того, какое должно быть значение precisionInt:

  • Значение точности для имени типа FLOAT должно быть от 0 до 24
  • Значение точности для имени типа DOUBLE должно быть от 25 до 53
...