Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 连接表中的映射值&;hibernate.PropertyAccessException:无法通过反射设置器设置字段值_Java_Hibernate_Openxava - Fatal编程技术网

Java 连接表中的映射值&;hibernate.PropertyAccessException:无法通过反射设置器设置字段值

Java 连接表中的映射值&;hibernate.PropertyAccessException:无法通过反射设置器设置字段值,java,hibernate,openxava,Java,Hibernate,Openxava,第一次张贴到stackoverflow,所以请原谅我没有正确张贴。我在一个旧线程上发布了一个带有代码的后续问题,因为我无法得到正确运行的推荐解决方案。我正在使用OpenXava,收到错误“无法执行保存操作:org.hibernate.PropertyAccessException:无法通过org.OpenXava.invoicing.model.CourseAssignmentId.course的反射设置程序设置字段值”。感谢您的帮助。我的代码: 用户类别: @Entity @Table(nam

第一次张贴到stackoverflow,所以请原谅我没有正确张贴。我在一个旧线程上发布了一个带有代码的后续问题,因为我无法得到正确运行的推荐解决方案。我正在使用OpenXava,收到错误“无法执行保存操作:org.hibernate.PropertyAccessException:无法通过org.OpenXava.invoicing.model.CourseAssignmentId.course的反射设置程序设置字段值”。感谢您的帮助。我的代码:

用户类别:

@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

感谢您指出这一点。然而,随着这一点的纠正,同样的问题。在这个问题上再多说一点…创建一个用户是可以的。开设一门课程很好。在保存CourseAssignment时,会抛出hibernate问题。从
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;
    }   
}