hibernate h2 embeddable list预期"标识符"

bas*_*kwo 6 java hibernate h2 embeddable

我试图将一个功能列表(Embeddable)关联到我的Employee Entity中,而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)"; 预期的"标识符";

事情是我已经用另一个项目完成了这个,我不明白为什么它不起作用.

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
}
Run Code Online (Sandbox Code Playgroud)

Function.java

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

    //getter and setter
}
Run Code Online (Sandbox Code Playgroud)

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

bas*_*kwo 22

事实证明我是愚蠢的,并命名为"秩序"一栏.不知道为什么H2不开心:upside_down:

将变量名称更改为其他名称并且它有效!

  • `ORDER`是H2DB的保留关键字 - http://h2database.com/html/advanced.html#compatibility (2认同)
  • 是的,我明白了。 (2认同)

pea*_*ins 5

我在命名字段时遇到同样的问题:private String toprivate String from,更改为 ex。dayTo , dayFrom ,它奏效了。