通过休眠和注释自引用许多东西 [英] self referencing manytomany with hibernate and annotations

查看:110
本文介绍了通过休眠和注释自引用许多东西的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  @ManyToMany(mappedBy =以下内容,cascade = CascadeType.ALL)
private Set< User> followers = new HashSet< User>();

@ManyToMany(mappedBy =followers,cascade = CascadeType.ALL)
private Set< User> following = new HashSet< User>();


解决方案

类似于:

  @ManyToMany(mappedBy =following,cascade = CascadeType.ALL)
@JoinTable(name =UserRel,
joinColumns = {@JoinColumn(name =ParentId)},
inverseJoinColumns = {@ JoinColumn(name =UserId)})
private Set< User> followers = new HashSet< User>();

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name =UserRel,
joinColumns = {@ JoinColumn(name =UserId)},
inverseJoinColumns = {@ JoinColumn(name =ParentId)})
private Set< User> following = new HashSet< User>();


My brain is starting to hurt thinking about this, is it as simple as :

@ManyToMany(mappedBy = "following", cascade = CascadeType.ALL)
private Set<User> followers = new HashSet<User>();

@ManyToMany(mappedBy = "followers", cascade = CascadeType.ALL)
private Set<User> following = new HashSet<User>();

解决方案

Something like:

@ManyToMany(mappedBy = "following", cascade = CascadeType.ALL)
@JoinTable(name="UserRel", 
                joinColumns={@JoinColumn(name="ParentId")}, 
                inverseJoinColumns={@JoinColumn(name="UserId")})
private Set<User> followers = new HashSet<User>();

@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name="UserRel", 
                joinColumns={@JoinColumn(name="UserId")}, 
                inverseJoinColumns={@JoinColumn(name="ParentId")})
private Set<User> following = new HashSet<User>();

这篇关于通过休眠和注释自引用许多东西的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆