public class User { //多
private Integer id;
private String name;
private Group group;
}
public class Group { //一
private Integer id;
private String name;
}
hbm.xml
user.hbm.xml
<?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 package="com.model">
<class name="User" table="user1" >
<id name="id" column="user_id" type="java.lang.Integer">
<generator class="native" />
</id>
<property name="name" length="50" type="java.lang.String" />
<many-to-one name="group" column="group_id" ></many-to-one>
<!--级联(不建议配cascade)
<many-to-one name="group" column="group_id" cascade="save-update"></many-to-one>
-->
</class>
</hibernate-mapping>
Group.hbm.xml
<?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 package="com.model">
<class name="Group" table="group1" >
<id name="id" column="group_id" type="java.lang.Integer">
<generator class="native" />
</id>
<property name="name" length="50" type="java.lang.String" />
</class>
</hibernate-mapping>
操作多对一实例:
public class ManyToOneTest extends TestCase{
public void testSave1(){
Session session = null;
Transaction ta = null;
User user = null;
try{
session = HibernateUtil.getSession();
ta = session.beginTransaction();
Group group = new Group();
group.setName("php");
User user1 = new User();
user1.setName("菜10php");
user1.setGroup(group);
User user2 = new User();
user2.setName("Z3php");
user2.setGroup(group);
session.save(group); //若设 cascade="all|save-update" ,则可无此行代码
session.save(user1);
session.save(user2);
ta.commit();
}catch(Exception e){
e.printStackTrace();
ta.rollback();
}finally{
//关闭session, user变为detached离线对象
HibernateUtil.closeSession(session);
}
}
public void testGet1(){
Session session = null;
Transaction ta = null;
User user = null;
try{
session = HibernateUtil.getSession();
ta = session.beginTransaction();
user = (User)session.get(User.class, new Integer(3));
System.out.println("user.name=" + user.getName());
System.out.println("group.name=" + user.getGroup().getName());
ta.commit();
}catch(Exception e){
e.printStackTrace();
ta.rollback();
}finally{
//关闭session, user变为detached离线对象
HibernateUtil.closeSession(session);
}
}
===================================
元素的cascade属性表明操作是否从父对象级联到被关联的对象, 它
的取得可以是以下几种:
none:在保存,删除或修改当前对象时,不对其附属对象(关联对象)进行级联
操作。它是默认值。
save-update:在保存,更新当前对象时,级联保存,更新附属对象(临时对象,
游离对象)。
delete:在删除当前对象时,级联删除附属对象。
all:所有情况下均进行级联操作,即包含save-update和delete操作。
分享到:
相关推荐
深入理解hibernate many-to-one(多对一)及 cascade(级联).
两套hibernate级联例子,jar包已经包含在里面了,运行代码也写好了,数据库直接会自动生成表的,就差你运行了,你懂的
hibernate 级联(cascade和inverse)一对多,Jar包,数据库建表语句都好了,只要修改一下,数据库配置文件,就可以使用了,使用junit进行测试。
inverse Hibernate_级联关系说明_-_关于cascade和inverse的用法
Hibernate cascade (级联).docHibernate_cascade(级联).doc
Spectrum Microwave Cascade7.0-RF级联频谱分析,适用于级联系统指标计算,包括但不限于NF、OIP3、输出频谱以及杂散分析
多对一: <hibernate-mapping> <class name="com.bjsxt.hibernate.User" table="t_user"> <!-- <many-to-one name="group" column="groupid" cascade="all"/> --> <many-to-one name=...
Hibernate映射多对多(两个一对多实现多对多) 表:材料表和产品表多对多,在数据库中有中间表即产品材料表用来存放两个表之间的关系 Java类:材料PO,产品PO,中间PO,中间PO的复合主键类(由于是两个一对多形成的多对...
\hibernate_配置cascade_及all-delete-orphan.doc
一、针对机器人多物体抓取检测研究问题,选用Cascade R-CNN为基础网络框架,Cascade R-CNN是通用目标检测中表现较好的一种级联算法,其特点是速度快,检测精度高。 二、首先构建一个由三十二类对象组成的多目标抓取...
详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) 级联在编写触发器时经常用到,触发器的作用是当 主控表信息改变时,用来保证其关联表中数据同步更新。若对触发器来修改或删除关联表相记录,必须...
以前用Sql Server只会对图形界面进行操作,现在发现自己的Sql语言功底是越来越差了,例如如何为两个表添加关联,让他们级联更新和级联 删除。 到晚上查了一下,发现可以用两种办法 触发器方式: create trigger ...
Company与Employee类之间为一对多多态关联关系,如果继承关系树的根类对应一个表,或者每个类对应一个表,那么就能映射Company类的employees集合。...many-to-onename="a"class="ClassA"column="A_ID"cascade="s
使用1500张佩戴口罩的图片和5000张没有佩戴口罩的图片训练成,识别精度高
三相级联H桥的研究和应用,希望能够对大家有所帮助,能和大家多交流
视觉识别、人脸识别;包含:haarcascade_eye.xml,haarcascade_eye_tree_eyeglasses.xml,haarcascade_frontalcatface.xml,haarcascade_frontalcatface_extended.xml,haarcascade_fullbody.xml
hibernate cascade 测试demo
mysql中的cascade级联,set null,restrict限制 都是什么意思,有何区别.zip
计算射频链路的级联特性,计算射频接收和发射的链路计算,包括噪声系数、架构设计、指标分解、电路、增益设计等。