引用的 AnnotationException 属性 不是 (One|Many)ToOne
AnnotationException Referenced property not a (One|Many)ToOne
我试图建立一对一的关系。但我收到错误:
AnnotationException Referenced property not a (One|Many)ToOne
on
com.student.information.service.Department.departmentId in mappedBy of com.student.information.service.DepartmentHead.department
两个实体几乎相同。部门可以没有部门负责人。
Department.Java
@Entity
@Table(name="department", catalog="student")
public class Department {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer departmentId;
@Column(name="dept_name")
private String departmentName;
@OneToMany(mappedBy="department",cascade = CascadeType.ALL)
private List<Student> student;
@OneToOne(targetEntity=Department.class)
private DepartmentHead departmenthead;
}
DepartmentHead.java
@Entity
@Table(name="departmenthead", catalog = "student")
public class DepartmentHead {
//This is mapped with the department id
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="headname")
private String headName;
@OneToOne(mappedBy = "departmentId",fetch = FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name="dept_id")
private Department department;
}
原因:org.hibernate.AnnotationException:引用的 属性 不是 (One|Many)ToOne:
有人可以指出我犯了什么错误的正确方向吗?过去 2 天我一直在苦苦挣扎,无法找出问题的解决方案。在此先感谢您的帮助。
学生class怎么样。您是否在 Student class.
中定义了 ManyToOne 关系
@Entity
public class Student {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
@ManyToOne
private Department department;
..................
请检查this example。
您的映射设置不正确。 Hibernate 抱怨没有名为 departmentId
的字段可用于建立一对一或多对关系,这是正确的。
您想像这样映射您的价值观。
Department.Java
@Entity
@Table(name="department", catalog="student")
public class Department {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer departmentId;
@OneToOne
@JoinColumn(name = "id")
private DepartmentHead departmenthead;
}
DepartmentHead.java
@Entity
@Table(name="departmenthead", catalog = "student")
public class DepartmentHead {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@OneToOne(mappedBy = "departmenthead")
private Department department;
}
您将 DepartmentHead
中的 Department
字段指向 Department
中的 DepartmentHead
字段。 Hibernate 整理出要使用的 ID,您不必在实际 link.
中指定它
我试图建立一对一的关系。但我收到错误:
AnnotationException Referenced property not a (One|Many)ToOne
on
com.student.information.service.Department.departmentId in mappedBy of com.student.information.service.DepartmentHead.department
两个实体几乎相同。部门可以没有部门负责人。
Department.Java
@Entity
@Table(name="department", catalog="student")
public class Department {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer departmentId;
@Column(name="dept_name")
private String departmentName;
@OneToMany(mappedBy="department",cascade = CascadeType.ALL)
private List<Student> student;
@OneToOne(targetEntity=Department.class)
private DepartmentHead departmenthead;
}
DepartmentHead.java
@Entity
@Table(name="departmenthead", catalog = "student")
public class DepartmentHead {
//This is mapped with the department id
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="headname")
private String headName;
@OneToOne(mappedBy = "departmentId",fetch = FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name="dept_id")
private Department department;
}
原因:org.hibernate.AnnotationException:引用的 属性 不是 (One|Many)ToOne:
有人可以指出我犯了什么错误的正确方向吗?过去 2 天我一直在苦苦挣扎,无法找出问题的解决方案。在此先感谢您的帮助。
学生class怎么样。您是否在 Student class.
中定义了 ManyToOne 关系 @Entity
public class Student {
@Id @GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String name;
@ManyToOne
private Department department;
..................
请检查this example。
您的映射设置不正确。 Hibernate 抱怨没有名为 departmentId
的字段可用于建立一对一或多对关系,这是正确的。
您想像这样映射您的价值观。
Department.Java
@Entity
@Table(name="department", catalog="student")
public class Department {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Integer departmentId;
@OneToOne
@JoinColumn(name = "id")
private DepartmentHead departmenthead;
}
DepartmentHead.java
@Entity
@Table(name="departmenthead", catalog = "student")
public class DepartmentHead {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@OneToOne(mappedBy = "departmenthead")
private Department department;
}
您将 DepartmentHead
中的 Department
字段指向 Department
中的 DepartmentHead
字段。 Hibernate 整理出要使用的 ID,您不必在实际 link.