测试代码
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;
}
}
分享到:
相关推荐
hibernate中一对多和多对一的配置区别
详细讲解了hibernate 的多对一xml配置以及curd操作,讲解了级联操作,适合初学者学习
NULL 博文链接:https://lichaobao.iteye.com/blog/1977048
加入了hibernate框架的javaWeb项目,里面包含了一对多的典型配置
Hibernate一对多映射配置详解,很值得借鉴
Hibernate配置详解,详细描述了Hibernate的配置文件,一对一 一对多,多对多的单双向配置详解。
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式以后,发现使用...
NULL 博文链接:https://profound-accumulation.iteye.com/blog/2243079
Hibernate双向一对一关联映射(注解版)
Hibernate 多表映射关系配置 如,一对一 多对一 多对多等
NULL 博文链接:https://dreamzhong.iteye.com/blog/1200915
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,这个是xml配置的例子
一个hibernate数据源的c3p0配置,希望对你有帮助
hibernate基于主外键的一对多/多对一关联
NULL 博文链接:https://kuangyeyazi.iteye.com/blog/2156940
NULL 博文链接:https://prowl.iteye.com/blog/519618
hibernate中一对一,一对多,多对多关系的配置,延迟加载,cascade,inverse hibernate查询方式概述,HQL查询,QBC查询,分页,结果集封装方式 ,高级查询 查询的优化,一级缓存,二级缓存,批量查询,注解方式
一对多(one to many) /多对一( many to one) 7.5.2. 一对一(one to one) 7.5.3. 多对多(many to many) 7.6. 更复杂的关联映射 8. 组件(Component)映射 8.1. 依赖对象(Dependent objects) 8.2. 在...
hibernate 级联(cascade和inverse)一对多,Jar包,数据库建表语句都好了,只要修改一下,数据库配置文件,就可以使用了,使用junit进行测试。