従業員エンティティ内で関数 (埋め込み可能) のリストを関連付けようとしていますが、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 を識別子として追加するように指示するにはどうすればよいですか? ありがとう