HIbernate多对多关系映射(注解配置)

2018-05-24  本文已影响28人  游牧族人

以视频信息与用户关系为例:
一个用户可以拥有多个视频,一个视频也可以同时被多个用户所拥有。

@Entity
@Table(name = "videos")
public class Video {

    private int video_id;
    private String video_name;
    private Kind video_kind;
    private Set<User> users = new HashSet<>();

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int getVideo_id() {}
    public void setVideo_id(int video_id){}
    public String getVideo_name(){}
    public void setVideo_name(String video_name){}
    ......
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(
            name = "user_video",
            joinColumns = @JoinColumn(name = "video_id"),
            inverseJoinColumns = @JoinColumn(name = "user_id")
    )
    public Set<User> getUsers(){}
    public void setUsers(Set<User> users){}

    public void show(){
        System.out.println("videoId = "+video_id);
        System.out.println("videoName = "+video_name);
        // System.out.println("videoKind = "+getVideo_kind().getKind_name());
    }

}

@Entity
@Table(name = "user")
public class User {

    private int user_id;
    private String user_username;
    private String user_password;
    private Set<Video> videos = new HashSet<>();

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public int getUser_id(){}
    public void setUser_id(int user_id){}
    public String getUser_username(){}
    public void setUser_username(String user_username){}
    public String getUser_password(){}
    public void setUser_password(String user_password){}

    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(
            name = "user_video",
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "video_id")
    )
    public Set<Video> getVideos(){}
    public void setVideos(Set<Video> videos){}
}

上一篇 下一篇

猜你喜欢

热点阅读