hibernate多对多中间表含有其他属性的配置

hibernate的多对多映射没有太多选择,只能通过中间表来配置关联关系。

中间表如果没有其他属性,只有外键关联的话,那么只需要在两个类中添加set属性,然后在xml配置文件中添加set条目即可。

如果中间表有其他属性,则需要给中间表也创建一个持久层类,然后两个关联类分别与其建立一对多关联

例子如下:

两个关联表示user和course,中间表为user_course

user类中添加

private Set<UserCourse> usercourses = new HashSet<UserCourse>();

public Set<UserCourse> getUsercourses() {
return usercourses;
}
public void setUsercourses(Set<UserCourse> usercourses) {
this.usercourses = usercourses;
}

user.hbm.xml中添加

<set name="usercourses" order-by="id" inverse="true">
        <key column="userid"></key>
        <one-to-many class="com.test.po.UserCourse"/>
        </set>

course类中添加

private Set<UserCourse> usercourses = new HashSet<UserCourse>();

public Set<UserCourse> getUsercourses() {
return usercourses;
}
public void setUsercourses(Set<UserCourse> usercourses) {
this.usercourses = usercourses;
}

course.hbm.xml中添加

<set name="usercourses" order-by="id" inverse="true">
        <key column="courseid"></key>
        <one-to-many class="com.test.po.User" />
        </set>

usercourse类中添加

private User user;//外键,用户表
private Course course;//外键,课程表

public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}

public Course getCourse() {
return course;
}
public void setCourse(Course course) {
this.course = course;
}

usercourse.hbm.xml中添加

<many-to-one name="user" class="com.test.po.User" column="userid"></many-to-one>
        <many-to-one name="course" class="com.test.po.Course" column="courseid"></many-to-one>

现在就能实现两个表的多对多关联了。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值