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关于多对多注解配置的主要内容,如果未能解决你的问题,请参考以下文章