一尘不染

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

hibernate

我正在尝试在我的员工实体中关联功能列表(可嵌入),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 []
NOT NULL)“; 预期的“标识符”;

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

Employee.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中不必要的一些属性。是什么导致此错误?是因为我在Employee中有一个String作为标识符吗?如果是这样,我如何告诉Hibernate添加Employee_EmployeeID作为标识符?谢谢


阅读 218

收藏
2020-06-20

共1个答案

一尘不染

原来我很傻,并命名为“订单”列。想知道为什么H2不开心:upside_down:

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

2020-06-20