1. 程式人生 > >hibernate 多對多(many to many)

hibernate 多對多(many to many)

 

 

package com.zking.pojo;

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

public class Menu {
	private String mid;
	private String mname;
	private transient Set<Roles> sr1 = new HashSet<Roles>();

	public Menu() {
		super();

	}
	
	

	public Set<Roles> getSr1() {
		return sr1;
	} 

	public void setSr1(Set<Roles> sr1) {
		this.sr1 = sr1;
	}



	public String getMid() {
		return mid;
	}

	public void setMid(String mid) {
		this.mid = mid;
	}

	public String getMname() {
		return mname;
	}

	public void setMname(String mname) {
		this.mname = mname;
	}

}



package com.zking.pojo;

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

public class Roles {

	private String rid;
	private String rname;

	private transient Set<Users> su = new HashSet<Users>();

	private transient Set<Menu> mi = new HashSet<Menu>();

	public Roles() {
		super();
	}

	public Roles(String rid, String rname) {
		super();
		this.rid = rid;
		this.rname = rname;
	}

	public Set<Users> getSu() {
		return su;
	}

	public void setSu(Set<Users> su) {
		this.su = su;
	}

	public Set<Menu> getMi() {
		return mi;
	}

	public void setMi(Set<Menu> mi) {
		this.mi = mi;
	}

	public String getRid() {
		return rid;
	}

	public void setRid(String rid) {
		this.rid = rid;
	}

	public String getRname() {
		return rname;
	}

	public void setRname(String rname) {
		this.rname = rname;
	}

}





package com.zking.pojo;

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

public class Users {

	private String uid;
	private String uname;

	private Set<Roles> sr = new HashSet<Roles>();

	public Users() {
		super();
	}

	public Users(String uid, String uname) {
		super();
		this.uid = uid;
		this.uname = uname;
	}

	public Set<Roles> getSr() {
		return sr;
	}

	public void setSr(Set<Roles> sr) {
		this.sr = sr;
	}

	public String getUid() {
		return uid;
	}

	public void setUid(String uid) {
		this.uid = uid;
	}

	public String getUname() {
		return uname;
	}

	public void setUname(String uname) {
		this.uname = uname;
	}

}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-9-11 17:33:00 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
	<class name="com.zking.pojo.Menu" table="MENU">
		<id name="mid" type="java.lang.String">
			<column name="MID" />
			<generator class="guid" />
		</id>
		<property name="mname" type="java.lang.String">
			<column name="MNAME" />
		</property>
		<set name="sr1" table="RolesMenu"  cascade="save-update" >
			<key>
				<column name="mid" />
			</key>
			<many-to-many class="com.zking.pojo.Roles" column="rid"></many-to-many>
		</set>
	</class>
</hibernate-mapping>




<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-9-11 17:33:00 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
	<class name="com.zking.pojo.Roles" table="ROLES">
		<id name="rid" type="java.lang.String">
			<column name="RID" />
			<generator class="guid" />
		</id>
		<property name="rname" type="java.lang.String">
			<column name="RNAME" />
		</property>

		<set name="su" table="UsersRoles" cascade="save-update">
			<key column="rid"></key>
			<many-to-many column="uid" class="com.zking.pojo.Users"></many-to-many>

		</set>

		<set name="mi" table="RolesMenu" inverse="true"  cascade="save-update">
			<key column="rid"></key>
			<many-to-many column="mid" class="com.zking.pojo.Menu"></many-to-many>

		</set>
	</class>
</hibernate-mapping>




<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-9-11 17:33:00 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
	<class name="com.zking.pojo.Users" table="USERS">
		<id name="uid" type="java.lang.String">
			<column name="UID" />
			<generator class="guid" />
		</id>
		<property name="uname" type="java.lang.String">
			<column name="UNAME" />
		</property>
		<set name="sr" table="UsersRoles" inverse="true" cascade="save-update">
			<key column="uid"></key>
			<many-to-many column="rid" class="com.zking.pojo.Roles"></many-to-many>
		</set>
	</class>
</hibernate-mapping>

 

<?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="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.password">sasa</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/t204?characterEncoding=utf-8</property>
		<property name="hibernate.connection.username">root</property>

		<property name="show_sql">true</property>
		<property name="format_sql">true</property>

		<mapping resource="com/zking/pojo/Users.hbm.xml" />
		<mapping resource="com/zking/pojo/Roles.hbm.xml" />
		<mapping resource="com/zking/pojo/Menu.hbm.xml" />
	</session-factory>
</hibernate-configuration>
package com.zking.test;

import java.util.Set;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import com.alibaba.fastjson.JSON;
import com.zking.pojo.Menu;
import com.zking.pojo.Roles;
import com.zking.pojo.Users;

public class TempTest {

	// @Test
	// public void add() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Transaction transaction = session.beginTransaction();
	//
	// // 建立Users
	// Users u1 = new Users();
	// u1.setUname("admin");
	//
	// // 建立Roles
	// Roles r1 = new Roles();
	// r1.setRname("System_Admin");
	//
	// // 建立Roles
	// Roles r2 = new Roles();
	// r2.setRname("Admin");
	//
	// u1.getSr().add(r1);
	// u1.getSr().add(r2);
	//
	// session.saveOrUpdate(u1);
	//
	// transaction.commit();
	// session.close();
	// sessionFactory.close();
	// }

	// @Test
	// public void query() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Users u1 = session.get(Users.class, "d5897815-b576-11e8-ad83-54ee75bbb0cd");
	// String str = JSON.toJSONString(u1);
	// System.out.println(str);
	// }

	// @Test
	// public void delete() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Users u1 = session.get(Users.class, "d5897815-b576-11e8-ad83-54ee75bbb0cd");
	// Set<Roles> ri = u1.getSr();
	// for (Roles roles : ri) {
	// roles.getSu().remove(u1);
	// }
	//
	// session.beginTransaction().commit();
	// session.close();
	// sessionFactory.close();
	// }

 
	 //刪除使用者,不刪除角色 
	// public void deleteUserByID(long uid) {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Users u1 = session.get(Users.class, "d5897815-b576-11e8-ad83-54ee75bbb0cd");
	// session.delete(u1); 
	// session.beginTransaction().commit();
	// session.close();
	// sessionFactory.close();
	// }
	
	

	// @Test
	// public void update() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Users u1 = session.get(Users.class, "d5897815-b576-11e8-ad83-54ee75bbb0cd");
	// u1.setUname("Admin");
	// session.update(u1);
	//
	// session.beginTransaction().commit();
	// session.close();
	// sessionFactory.close();
	//
	// }

	// Roles 》Menu

	// @Test
	// public void add1() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Transaction transaction = session.beginTransaction();
	// Roles r1 = new Roles();
	// r1.setRname("MAMA");
	//
	// Menu m1 = new Menu();
	// m1.setMname("mama");
	//
	// Menu m2 = new Menu();
	// m2.setMname("mama_admin");
	//
	// r1.getMi().add(m1);
	// r1.getMi().add(m2);
	//
	// session.saveOrUpdate(r1);
	//
	// transaction.commit();
	// session.close();
	// sessionFactory.close();
	// }

	// @Test
	// public void query1() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Roles r1 = session.get(Roles.class, "40a53234-b5af-11e8-ad83-54ee75bbb0cd");
	// String str = JSON.toJSONString(r1);
	// System.out.println(str);
	// }

	// @Test
	// public void delete1() {
	// Configuration configuration = new Configuration().configure();
	// SessionFactory sessionFactory = configuration.buildSessionFactory();
	// Session session = sessionFactory.openSession();
	// Roles r1 = session.get(Roles.class, "40a53234-b5af-11e8-ad83-54ee75bbb0cd");
	// Set<Menu> m1 = r1.getMi();
	// for (Menu menu : m1) {
	// menu.getSr1().remove(r1);
	// }
	// session.beginTransaction().commit();
	// session.close();
	// sessionFactory.close();
	// }

}