Java 连接表中的映射值&;hibernate.PropertyAccessException:无法通过反射设置器设置字段值
第一次张贴到stackoverflow,所以请原谅我没有正确张贴。我在一个旧线程上发布了一个带有代码的后续问题,因为我无法得到正确运行的推荐解决方案。我正在使用OpenXava,收到错误“无法执行保存操作:org.hibernate.PropertyAccessException:无法通过org.OpenXava.invoicing.model.CourseAssignmentId.course的反射设置程序设置字段值”。感谢您的帮助。我的代码: 用户类别:Java 连接表中的映射值&;hibernate.PropertyAccessException:无法通过反射设置器设置字段值,java,hibernate,openxava,Java,Hibernate,Openxava,第一次张贴到stackoverflow,所以请原谅我没有正确张贴。我在一个旧线程上发布了一个带有代码的后续问题,因为我无法得到正确运行的推荐解决方案。我正在使用OpenXava,收到错误“无法执行保存操作:org.hibernate.PropertyAccessException:无法通过org.OpenXava.invoicing.model.CourseAssignmentId.course的反射设置程序设置字段值”。感谢您的帮助。我的代码: 用户类别: @Entity @Table(nam
@Entity
@Table(name="users")
public class User {
@Id
@Column(name="pk1")
private Long id;
public Long getid() {
return id;
}
public void setid(Long id) {
this.id = id;
}
@Column(name="user_id")
private String userID;
public String getuserID(){
return userID;
}
public void setuserID(String userID) {
this.userID = userID;
}
@OneToMany(mappedBy="user")
private Collection<CourseAssignment> courseAssignments;
public Collection<CourseAssignment> getcourseAssignments() {
return courseAssignments;
}
public void setcourseAssignments(Collection<CourseAssignment> courseAssignments) {
this.courseAssignments = courseAssignments;
}
}
CourseAssignmentId类:
@Embeddable
public class CourseAssignmentId implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Column(name="user_pk1")
private Long user;
public Long getuser() {
return user;
}
public void setuser(Long user) {
this.user = user;
}
@Column(name="crsmain_pk1")
private Long course;
public Long getcourse() {
return course;
}
public void setcourse(Long course) {
this.course = course;
}
}
有些事情可以尝试:
- 从
中删除CourseAssignmentId
注释(我认为在这种情况下不合适)@Embeddeble
- 从
CourseAssignmentId
- 在
CourseAssignmentId
CourseAssignmentId
中删除@Embeddeble
和@Column
注释解决了此问题。非常感谢!!你想干什么?
@Entity
@Table(name="course_users")
@IdClass(CourseAssignmentId.class)
public class CourseAssignment {
@Id
@ManyToOne
@JoinColumn(name="user_pk1")
private User user;
public User getuser() {
return user;
}
public void setuser(User user) {
this.user = user;
}
@Id
@ManyToOne
@JoinColumn(name="crsmain_pk1")
private Course course;
public Course getcourse() {
return course;
}
public void setcourse(Course course) {
this.course = course;
}
@Column(name="role")
private String role;
public String getrole() {
return role;
}
public void setrole(String role) {
this.role = role;
}
}
@Embeddable
public class CourseAssignmentId implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@Column(name="user_pk1")
private Long user;
public Long getuser() {
return user;
}
public void setuser(Long user) {
this.user = user;
}
@Column(name="crsmain_pk1")
private Long course;
public Long getcourse() {
return course;
}
public void setcourse(Long course) {
this.course = course;
}
}