hibernate关于多对多注解配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hibernate关于多对多注解配置相关的知识,希望对你有一定的参考价值。

Game实体类配置关系

@Entity
@Table(name = "game")
public class Game {
    @Id
    @GeneratedValue
    private Integer gid;
    private String gname;
    @ManyToMany(mappedBy = "games",cascade = CascadeType.ALL)
    private Set<Player> players=new HashSet<Player>();

    public Integer getGid() {
        return gid;
    }

    public void setGid(Integer gid) {
        this.gid = gid;
    }

    public String getGname() {
        return gname;
    }

    public void setGname(String gname) {
        this.gname = gname;
    }

    public Set<Player> getPlayers() {
        return players;
    }

    public void setPlayers(Set<Player> players) {
        this.players = players;
    }
}

player实体类配置关系

@Entity
@Table(name = "player")
public class Player {
    @Id
    @GeneratedValue
    private Integer pid;
    private String pname;
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "pg",joinColumns = @JoinColumn(name = "pid"),inverseJoinColumns = @JoinColumn(name = "gid"))
    private Set<Game> games=new HashSet<Game>();

    public Integer getPid() {
        return pid;
    }

    public void setPid(Integer pid) {
        this.pid = pid;
    }

    public String getPname() {
        return pname;
    }

    public void setPname(String pname) {
        this.pname = pname;
    }

    public Set<Game> getGames() {
        return games;
    }

    public void setGames(Set<Game> games) {
        this.games = games;
    }
}

hibernate.cfg.xml需要配置关联实体类路径

<mapping class="cn.wyd.a.Game"/>
		<mapping class="cn.wyd.a.Player"/>

测试类测试数据

 @Test
    public void test1() {
        Game game1 = new Game();
        Game game2 = new Game();
        game1.setGname("g1");
        game2.setGname("g2");
        Player player = new Player();
        player.setPname("123");
        player.getGames().add(game1);
        player.getGames().add(game2);
        game1.getPlayers().add(player);
        game2.getPlayers().add(player);
        session.save(player);
    }

  

以上是关于hibernate关于多对多注解配置的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate 注解(Annotations 四)多对多双向注解

hibernate多对多 一对多 及简单入门

hibernate多对多注解示例

Hibernate之关于多对多单向关联映射

Hibernate框架学习之注解配置关系映射

Hibernate—— 一对多 和 多对多关联关系映射(xml和注解)总结(转载)