测试代码
package test.org.test.hiberante.pojo;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;
import org.test.hiberante.pojo.Role;
import org.test.hiberante.pojo.User;
import junit.framework.TestCase;
public class TestHibernate extends TestCase {
SessionFactory sf;
protected void setUp() throws Exception {
sf = new Configuration().configure().buildSessionFactory();
super.setUp();
}
protected void tearDown() throws Exception {
sf.close();
super.tearDown();
}
public void testCrud(){
Session session = sf.openSession();
User user = new User();
// user.setId(12);
user.setName("zhangsan");
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
session.close();
}
public void testS(){
Session session = sf.openSession();
// User user = (User) session.load(User.class, new Long(3));
// Role role = new Role();
Role role = (Role) session.load(Role.class, new Long(1));
User user = new User();
user.setName("zhangsan");
user.setRole(role);
// role.setRname("nomal");
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
session.close();
// if(null != user){
// System.out.println(user.getName());
// }else{
// System.out.println("user is not here");
// }
//
}
public void testR(){
Session session = sf.openSession();
// User user = (User) session.load(User.class, new Long(1));
// System.out.println(user);
Role role = (Role) session.load(Role.class, new Long(1));
System.out.println(role);
// Role role = new Role();
// Role role = (Role) session.load(Role.class, new Long(1));
// User user = new User();
//
// user.setName("zhangsan");
// user.setRole(role);
// role.setRname("nomal");
//
// Transaction tx = session.beginTransaction();
// session.save(user);
// tx.commit();
// session.close();
// if(null != user){
// System.out.println(user.getName());
// }else{
// System.out.println("user is not here");
// }
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.test.hiberante.pojo.User" table="user" lazy="true">
<id column="id" name="id" type="long" unsaved-value="null">
<generator class="native"/>
</id>
<property column="name" length="20" name="name" type="string"/>
<many-to-one name="role">
<column name="rid"/>
</many-to-one>
</class>
</hibernate-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="org.test.hiberante.pojo.Role" table="role" lazy="true">
<id column="id" name="id" type="long" unsaved-value="null">
<generator class="native"/>
</id>
<property column="rname" length="20" name="rname" type="string"/>
<set name="users">
<key column="rid"/>
<one-to-many class="org.test.hiberante.pojo.User"/>
</set>
</class>
</hibernate-mapping>
package org.test.hiberante.pojo;
public class User {
private long id;
private String name;
private Role role;
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString(){
return name+" : "+id;
}
}
package org.test.hiberante.pojo;
import java.util.Set;
public class Role {
private long id;
private String rname;
private Set users;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getRname() {
return rname;
}
public void setRname(String rname) {
this.rname = rname;
}
public String toString(){
return rname+" : "+id;
}
public Set getUsers() {
return users;
}
public void setUsers(Set users) {
this.users = users;
}
}
分享到:
相关推荐
在JavaEE开发中,Hibernate是一个非常重要的对象关系映射(ORM)框架,它极大地简化...通过分析这些代码,你将能更好地掌握Hibernate一对多关系的配置和使用。同时,也可以尝试修改配置或业务逻辑,以加深理解和应用。
【hibernate之一对多配置demo】:在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。本教程主要关注Hibernate中的一对多关系配置,并通过XML来实现,同时也涵盖了...
本篇文章将详细讲解"hibernate一对多与多对一"的关系映射概念,以及如何在实际开发中进行配置和使用。 首先,我们来看一下“一对多”关系。在现实世界中,这种关系可以对应到例如一个班级有多个学生,或者一个人...
这个压缩包文件“HibernateORM”很可能包含了关于如何在实际项目中设置和使用Hibernate一对多双向关联的示例代码、配置文件或者详细教程。通过学习这些材料,开发者能够深入理解如何在Java应用中利用Hibernate来处理...
以上就是关于Hibernate中一对一和一对多关联关系的基本知识及其配置示例。理解和熟练应用这些关联关系是提高Java应用程序数据库操作效率的关键。在使用Hibernate时,要灵活运用各种特性,以适应不同场景的需求,同时...
“Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...
在这个“Struts+Hibernate一对多的管理系统”项目中,我们将深入理解这两个框架如何协同工作,构建出一个具备一对多关系的数据管理应用。在Java Web开发中,一对多关系非常常见,比如在一个用户可以拥有多个订单的...
总的来说,Java+Hibernate双数据源配置是一项关键技能,它使得开发者能够在同一个应用中管理和操作多个数据库,实现读写分离、负载均衡等高级功能。结合SpringBoot的自动化配置和AOP特性,能够简化配置过程,提升...
在本主题中,我们将深入探讨使用Hibernate注解来实现JPA的一对多、多对多和多对一的关系映射。 1. **一对多关系**: 在现实世界中,一个老师可以教多个学生,或者一个班级可以包含多个学生,这就是典型的一对多...
在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...
一、Hibernate一对多关系概述 在数据库设计中,一对多关系意味着一个表(父表)中的记录可以与另一个表(子表)中的多个记录相对应。例如,一个学生可以有多个课程,而一门课程可以被多个学生选修。在Hibernate中,...
在本篇中,我们将深入探讨Hibernate的配置,特别是涉及一对一、一对多和多对多关系的配置。 首先,配置过程始于`Configuration`接口。这个接口用于设置Hibernate所需的配置信息,如数据源、连接参数等,并根据配置...
在Java的持久化框架Hibernate中,一对多(Many-to-One)和多对一(One-to-Many)的关系映射是数据库关系模型中的常见关联类型。本文将深入探讨这两种关联方式在使用Hibernate时的配置,包括基于注解(Annotation)和...
在Java的持久化框架Hibernate中,一对多关系(OneToMany)是一种常见的对象关系映射(ORM)映射方式,它模拟了数据库中一个表的一条记录与另一表的多条记录之间的关联。本教程通过源代码的形式,讲解如何在Hibernate...
【hibernate一对多实例详解】 在Java编程中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作。在这个“hibernate一对多实例”中,我们将深入探讨如何在Hibernate中实现一对多的关系,这是一种...
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...
* `set`:定义一对多关联关系 这些配置项是 Hibernate 建立对象关系映射所需的基本信息。 Hibernate 配置文件是其核心组件之一,用于定义 Hibernate 的运行期参数。通过 hibernate.cfg.xml 和 .hbm.xml 文件,我们...
总之,这个【hibernate 一对多测试工程】提供了一个实践的平台,帮助开发者理解和掌握Hibernate中的一对多关系映射,包括注解配置、对象关联、数据持久化和查询操作。通过这个项目,你可以深入了解ORM框架如何简化...
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...