2

複数のマップされた属性を使用しようとしています。しかし、コードを実行しようとすると、コードは例外を生成します。この例は、Pro JPA 2、第 10 章の本に基づいています。次のコードがあります:

部門ID.java

public class DeptId implements Serializable{

private static final long serialVersionUID = 5177373337405448966L;
private int number;
private String country;
    .....................

ProjectId.java

public class ProjectId implements Serializable{

private static final long serialVersionUID = 4239980609226293562L;
private String name;
private DeptId deptId;
.....................

Department.java

@Entity
@IdClass(DeptId.class)
public class Department implements Serializable {

private static final long serialVersionUID = 1L;
@Id
private int number;
@Id
private String country;
private String name;

@OneToMany(mappedBy="deptId")
List<Project> projects;
    ......................

Project.java

@Entity
@IdClass(ProjectId.class)
public class Project implements Serializable {

private static final long serialVersionUID = 1L;
@Id
private String name;

@Id
@ManyToOne
@JoinColumn(name="dept_id")
private Department deptId;
    ........................

このコードは次の例外を生成します

Caused by: org.hibernate.AnnotationException: Implicit column reference in the @MapsId mapping fails, try to use explicit referenceColumnNames: example.domain.Department
4

1 に答える 1