一、核心配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/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">root</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="hibernate.connection.username">root</property> <property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<!--
<mapping resource="com/chinasofti/entity/User.hbm.xml" />
<mapping resource="com/chinasofti/entity/Role.hbm.xml" />
-->
<mapping class="com.chinasofti.entity.User"/>
<mapping class="com.chinasofti.entity.Role"/>
</session-factory>
</hibernate-configuration>

二、实体类

  User

package com.chinasofti.entity;

import java.util.HashSet;
import java.util.Set; import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table; @Entity
@Table(name="T_USER2")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer user_id;
private String user_name;
private String user_password; @OneToMany(mappedBy="user",cascade=CascadeType.REMOVE)
private Set<Role> roles = new HashSet<Role>(); public Set<Role> getRoles() {
return roles;
}
public void setRoles(Set<Role> roles) {
this.roles = roles;
}
public Integer getUser_id() {
return user_id;
}
public void setUser_id(Integer user_id) {
this.user_id = user_id;
}
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
public String getUser_password() {
return user_password;
}
public void setUser_password(String user_password) {
this.user_password = user_password;
}
@Override
public String toString() {
return "User [user_id=" + user_id + ", user_name=" + user_name
+ ", user_password=" + user_password + "]";
}
}

  Role

package com.chinasofti.entity;

import java.util.HashSet;
import java.util.Set; import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table; @Entity
@Table(name="T_ROLE2")
public class Role {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer role_id;
private String role_name;
private String role_memo;
@ManyToOne
@JoinColumn(name="user_id")
private User user;
public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} public Integer getRole_id() {
return role_id;
} public void setRole_id(Integer role_id) {
this.role_id = role_id;
} public String getRole_name() {
return role_name;
} public void setRole_name(String role_name) {
this.role_name = role_name;
} public String getRole_memo() {
return role_memo;
} public void setRole_memo(String role_memo) {
this.role_memo = role_memo;
} @Override
public String toString() {
return "Role [role_id=" + role_id + ", role_name=" + role_name
+ ", role_memo=" + role_memo + "]";
} }

三、封装类

package com.chinasofti.entity;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class HibernateUtil {
static Configuration CONFIGURATION = null;
static SessionFactory SESSION_FACTORY = null;
static Session SESSION = null;
static{
CONFIGURATION = new Configuration();
CONFIGURATION.configure();
SESSION_FACTORY = CONFIGURATION.buildSessionFactory();
SESSION = SESSION_FACTORY.openSession();
}
public static SessionFactory getSessionFactory(){
return SESSION_FACTORY;
}
public static Session openSession(){
return SESSION;
}
}

四、测试类

package com.chinasofti.entity;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test; public class TestAnnotation { @Test
public void removeRoleForUser(){
Session session = HibernateUtil.openSession();
Transaction transaction = session.beginTransaction();
//先找到左冷禅
//User zuolengchan = session.get(User.class, 1);
//再找到角色-掌门
Role zhangmen = session.get(Role.class, 1);
session.delete(zhangmen);
//session.save(zuolengchan);
//session.update(zuolengchan);
transaction.commit();
session.close();
} @Test
public void testAnnotationOneToMany(){
Session session = HibernateUtil.openSession();
Transaction transaction = session.beginTransaction();
User user = new User();
user.setUser_name("左冷禅");
user.setUser_password("guniang"); //角色
Role role1 = new Role();
role1.setRole_name("掌门");
role1.setRole_memo("zhangmen"); //角色
Role role2 = new Role();
role2.setRole_name("教主");
role2.setRole_memo("jiaozhu");
role1.setUser(user);
role2.setUser(user);
//给左冷禅添加角色
user.getRoles().add(role1);
user.getRoles().add(role2); //保存左冷禅-级联角色
session.save(user);
transaction.commit();
session.close();
}
}

补充

最新文章

  1. MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
  2. 教你开发asp.net的单点登录系统
  3. YII2操作mongodb笔记(转)
  4. Java:多个数求和
  5. 实现IDisposable接口的模式
  6. iOS开发-解决AVAudioRecorder录音文件无法保存的问题
  7. LVM(1)
  8. Java 异步 IO
  9. MYSQL触发器在PHP项目中用来做信息备份、恢复和清空
  10. [BZOJ 2169]连边
  11. 乞丐版JAVA扫雷
  12. 如何搭建一个VUE项目
  13. Mysql远程访问报错2003
  14. 前端js收藏
  15. linux 下创建共享文件夹
  16. Linux常用基本命令:三剑客命令之-awk输入输出分隔符
  17. Lua 判断表是否为空方法
  18. 把旧系统迁移到.Net Core 2.0 日记 (13) --图形验证码
  19. web API分类
  20. Java并发基础知识你知道多少?

热门文章

  1. Ubuntu 安装uwsgi出错
  2. Codeforces Round #575 (Div. 3) D1+D2. RGB Substring (easy version) D2. RGB Substring (hard version) (思维,枚举,前缀和)
  3. Access数据库删除重复记录,只保留一条记录的做法
  4. 利用zookeeper部署kafka集群
  5. OOP三大核心封装继承多态
  6. 修改 git log
  7. UILabel的行间距,字间距处理
  8. idea 导出可以直接运行的jar 文件
  9. webpack4基础配置
  10. 第六篇:Scrapy框架