栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何从联接表中为其他属性创建多对多 Hibernate Mapping?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何从联接表中为其他属性创建多对多 Hibernate Mapping?

你需要使用

@EmbeddedId
@Embeddable
注释来解决此问题:

讲师班:

@Entity@Table(name="LECTURER")public class Lecturer {@oneToMany(fetch = FetchType.LAZY, mappedBy = "pk.lecturer", cascade=CascadeType.ALL)Set<LecturerCourse> lecturerCourses == new HashSet<LecturerCourse>();//all others properties Setters and getters are less relevant.}

课程类别:

@Entity@Table(name="COURSE")public class Course {@oneToMany(fetch = FetchType.LAZY, mappedBy = "pk.course", cascade=CascadeType.ALL)Set<LecturerCourse> lecturerCourses == new HashSet<LecturerCourse>();//all others properties Setters and getters are less relevant.}

讲师课程:

@Entity@Table(name = "lecturer_course")@AssociationOverrides({        @AssociationOverride(name = "pk.lecturer",  joinColumns = @JoinColumn(name = "LECTURER_ID")),        @AssociationOverride(name = "pk.course",  joinColumns = @JoinColumn(name = "COURSE_ID")) })public class LecturerCourse {    private LecturerCourseID pk = new LecturerCourseID();    @Column(name = "CAPACITY", nullable = false, length = 10)    private String capacity;    @EmbeddedId    public LecturerCourseID getPk() {        return pk;    }}

现在,主键:

@Embeddablepublic class LecturerCourseID implements java.io.Serializable {    private Lecturer lecturer;    private Course course;    @ManyToOne    public Stock getLecturer() {        return lecturer;    }    public void setLecturer(Lecturer lecturer) {        this.lecturer= lecturer;    }    @ManyToOne    public Course getCourse() {        return course;    }    public void setCourse(Course course) {        this.course= course;    }}

现在,你的Main应该是这样的:

Lecturer lecturer1 = new Lecturer();Course math = new Course();LecturerCourse lecturer1math  = new LecturerCourse();lecturer1math.setCapacity("capacity");lecturer1math.setLecturer(lecturer1);lecturer1math.setCourse(math);lecturer1.getLecturerCourses().add(lecturer1math);//saving objectsession.save(lecturer1);

你需要确保标记为的类

@Embeddable
应实现
Serializable
标记接口。

希望能帮助到你。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号