休眠 h2 嵌入式列表预期“标识符”

2022-09-02 02:15:13

我试图在我的员工实体中关联一个函数列表(可嵌入的),H2似乎对这个说它需要一个“标识符”感到不满意。

由以下原因引起: org.h2.jdbc.JdbcSQLException: SQL 语句中的语法错误 “ CREATE TABLE EMPLOYEE_FUNCTIONS ( EMPLOYEE_EMPLOYEEID VARCHAR(255) NOT NULL, ACTIVE BOOLEAN NOT NULL, DEPARTMENTNUMBER INTEGER NOT NULL, DESCRIPTION VARCHAR(255), ORDER[*] INTEGER NOT NULL ) ”;预期的“标识符”;

问题是我已经在另一个项目中做到了这一点,我不明白为什么它不起作用。

员工.java

@Entity
public class Employee extends AbstractScheduleEntity<EmployeeSchedule> {
    public static final String ACOMBA_UNIQUE_FIELD = "acombaUnique";

    @Id
    @GenericGenerator(name = "sequence_id", strategy = 
    "ca.tecsar.core.sql.ServerSequenceGenerator")
    @GeneratedValue(generator = "sequence_id")
    @Column(name = "EmployeeID", unique = true, nullable = false)
    private String employeeID;
    @ElementCollection
    private List<Function> functions;

    //getter and setter
}

功能.java

@Embeddable
public class Function implements Serializable {
    private int order;
    private boolean active;
    private String description;
    private int departmentNumber;

    //getter and setter
}

我在 Employee 中删除了一些不必要的属性。什么可能导致此错误?是因为我的员工中有一个字符串作为标识符吗?如果是这样,我怎么能告诉Hibernate添加Employee_EmployeeID作为标识符?谢谢


答案 1

事实证明,我很愚蠢,并命名为“订单”专栏。想知道为什么H2不高兴:upside_down:

将变量名称更改为其他名称,它起作用了!


答案 2

我在命名字段时遇到了同样的问题:和,更改为例如dayTo,dayFrom,并且它起作用了。private String toprivate String from


推荐