Hibernate 自身多对多双向映射该如何实现

mr桀骜不驯 发布于 2013/03/19 22:58
阅读 781
收藏 1

Hibernate 自身多对多双向映射该如何实现,比如

public class User{
    private int id;
    private String name;
    private List<User> friends=new ArrayList<User>();
    .
    .
    .
}

而且在数据库中是如何实现的呢?

以下是问题补充:

@mr桀骜不驯:映射文件该如何写,数据库对应的表该如何创建呢? (2013/03/19 23:30)
加载中
0
JavaOlder
JavaOlder
通过外键
mr桀骜不驯
mr桀骜不驯
能够具体一点吗,hbm.xml里该如何写,数据库中的表又该如何创建呢?谢谢
0
JavaOlder
JavaOlder

数据库表自动生成啊

mr桀骜不驯
mr桀骜不驯
那数据库表也得先create出来吧,我就是没想到需要哪些column啊
0
mr桀骜不驯
mr桀骜不驯

引用来自“Wentasy”的答案

似乎没看懂我的意思喔,我想问的是要实现自身的多对多映射,要怎样设计数据库,谢谢
0
pantrick
pantrick
public class User{
    private int id;
    private String name;
    private List<User> friends=new ArrayList<User>();
   
 
    
    @ManyToMany
    public  List<User> getFriends(){}


}

默认会生成中间表的user_friends {

    user_id,friend_id

}

pantrick
pantrick
回复 @mr桀骜不驯 : 你没彻底理解多对多的含义,多对多就是松散对应,我的friends里有你,你的friends里有我不奇怪啊,你把我当朋友,我不一定把你当朋友,这样理解就可以了,哈哈,而且这种数据也不算冗余,因为在业务上,假如你删除了我好友,你也不一定要删除我好友,好友不关系并不是正交的
mr桀骜不驯
mr桀骜不驯
但是friends也是User类的喔,而且如果这样生成的话,假如我跟你互相是朋友,那么我的friends列表里有你,你的friends列表有我,这样子你所说的中间表里不就会出现冗余数据?
返回顶部
顶部