繁体   English   中英

使用@ManyToOne休眠映射,引用的列无法正常工作

[英]Referenced column is not working correct with @ManyToOne hibernate-mapping

我的映射OneToMany有问题。 我的例外是org.hibernate.MappingException:实体:com.lcdut.model.SubjectsModel列的映射中重复的列:组(应使用insert =“ false” update =“ false”进行映射)

如果我使用udpatetable或插入false,那是同样的问题((

@Entity
@Table(name = "subjects")
public class SubjectsModel {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    @Column(name = "groups")
    private int groups;
    ...........
    @ManyToOne
    @JoinColumns({
            @JoinColumn(name = "groups", referencedColumnName = "id_group")
    })
    private StudentsModel studentsModel;
    ........
}

@Entity
@Table(name = "students")
public class StudentsModel {
    @Id
    @Column(name = "id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    @Basic
    @Column(name = "pib")
    private String pib;
    @Basic
    @Column(name = "id_group")
    ........
    @OneToMany(mappedBy = "studentsModel")
    private Set<SubjectsModel> subjects;
}
@Column(name = "groups")
private int groups;
...........
@ManyToOne
@JoinColumns({
    @JoinColumn(name = "groups", referencedColumnName = "id_group")
})
private StudentsModel studentsModel;
........

这两个字段由同一列映射。 您不需要private int groups; 删除它,一切都会正常。

如果我理解正确的方法,它应该是1:n的关系,并且应该像下面这样工作(列/外键Studentid必须在数据库中以int的形式存在):

    @Entity
    @Table(name = "subjects")
    public class SubjectsModel {
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private int id;

        @ManyToOne
        @JoinColumn(name = "studentsid")
        private StudentsModel studentsModel;
        ........
    }

    @Entity
    @Table(name = "students")
    public class StudentsModel {
        @Id
        @Column(name = "id")
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        @Basic
        @Column(name = "pib")
        private String pib;
        @OneToMany(mappedBy = "studentsModel")
        private Set<SubjectsModel> subjects;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM