TbPower

package com.wxh.dto;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;

@Entity
public class TbPower {

private int powerid;
private String powername;
private Set<TbUser> users=new HashSet<TbUser>();

public TbPower() {

}

public TbPower(int powerid, String powername) {
super();
this.powerid = powerid;
this.powername = powername;
}


@Id
public int getPowerid() {
return powerid;
}
public void setPowerid(int powerid) {
this.powerid = powerid;
}
public String getPowername() {
return powername;
}
public void setPowername(String powername) {
this.powername = powername;
}

@ManyToMany(fetch=FetchType.LAZY,cascade={CascadeType.ALL})
@JoinTable(name="user_power",joinColumns=@JoinColumn(name="powerid"),
inverseJoinColumns=@JoinColumn(name="userid"))
public Set<TbUser> getUsers() {
return users;
}
public void setUsers(Set<TbUser> users) {
this.users = users;
}

@Override
public String toString() {
return "TbPower [powerid=" + powerid + ", powername=" + powername
+ ", users=" + users + "]";
}
}


TbUser

package com.wxh.dto;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;

@Entity
public class TbUser {

private int userid;
private String username;
private String password;

private Set<TbPower> powers=new HashSet<TbPower>();

public TbUser() {
}

public TbUser(int userid, String username, String password) {
super();
this.userid = userid;
this.username = username;
this.password = password;
}

@Id
public int getUserid() {
return userid;
}

public void setUserid(int userid) {
this.userid = userid;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

@ManyToMany(fetch=FetchType.LAZY,cascade={CascadeType.ALL})
@JoinTable(name="user_power",joinColumns=@JoinColumn(name="userid"),
inverseJoinColumns=@JoinColumn(name="powerid"))
public Set<TbPower> getPoers() {
return powers;
}

public void setPoers(Set<TbPower> powers) {
this.powers = powers;
}
}


Test

package test;

import org.hibernate.Session;

import com.wxh.dto.TbPower;
import com.wxh.dto.TbUser;
import com.wxh.sessionfactory.HibernateSessionFactory;

public class Test {

public static void main(String[] args) {

// TbPower p1=new TbPower(1,"添加");
// TbPower p2=new TbPower(2,"修改");
// TbPower p3=new TbPower(3,"删除");
// TbPower p4=new TbPower(4,"查询");
//
// TbUser u1=new TbUser(10,"张三","m233");
// TbUser u2=new TbUser(20,"李四","m222");

Session session=HibernateSessionFactory.getSession();
session.beginTransaction();

// session.save(p1);
// session.save(p2);
// session.save(p3);
// session.save(p4);
//
// session.save(u1);
// session.save(u2);

//权限分配
// TbUser user=session.get(TbUser.class, 20);
// TbPower power4=session.get(TbPower.class, 4);
// TbPower power3=session.get(TbPower.class, 3);
// TbPower power2=session.get(TbPower.class, 2);
// TbPower power1=session.get(TbPower.class, 1);
//
// user.getPoers().add(power1);
// user.getPoers().add(power2);
// user.getPoers().add(power3);
// user.getPoers().add(power4);

//用户权限的查询
TbUser user=session.get(TbUser.class, 20);
System.out.println(user.getUserid()+"=="+user.getUsername()+"=="+user.getPoers());

session.getTransaction().commit();

}
}


hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>
<property name="hbm2ddl.auto">update</property>
<property name="dialect">
org.hibernate.dialect.Oracle9Dialect
</property>
<property name="connection.url">
jdbc:oracle:thin:@127.0.0.1:1521:orcl
</property>
<property name="connection.username">hibernate</property>
<property name="connection.password">m123</property>
<property name="connection.driver_class">
oracle.jdbc.driver.OracleDriver
</property>
<property name="myeclipse.connection.profile">oracle</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>

<mapping class="com.wxh.dto.TbPower"/>
<mapping class="com.wxh.dto.TbUser"/>
</session-factory>
</hibernate-configuration>