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>