У меня есть небольшая служба SpringBoot JPA REST.
Я использую H2 для среды разработки.
Я использую ddl-auto: update
Использование SINGLE табличная стратегия для иерархических сущностей.
Имитация действительного кода похожа на приведенную ниже
@Data
@Entity
@NoArgsConstructor
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TYPE")
public abstract class SuperEntity {
@Id
@GeneratedValue
Long id;
private String property1;
private String property2;
.............
...............
@ManyToOne
private SomeOtherEntity b;
}
Есть много дочерних сущностей, но одна из сущностей похожа на эту
@Data
@NoArgsConstructor
@Entity
@DiscriminatorValue("child1")
public class Child1 extends SuperEntity {
@Enumerated(EnumType.STRING)
private CType cType;
private BigDecimal limit;
private BigDecimal x;
private BigDecimal y;
private int z;
.............
...............
}
Но при запуске приложения во время выполнения DDL я получаю следующее исключение.
Caused by: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement
CREATE TABLE SUPER_ENTITY (
.............
...............
LIMIT[*] DECIMAL(19,2),
.............
...............
) "; expected "identifier"; SQL statement:
Я упомянул только столбец LIMIT , потому что именно здесь * упоминается при ошибке H2 журнал . если я просто изменил имя поля в классе Child1 с limit на creditLimit, все работает нормально.
в чем проблема с ограничением имени столбца?