hibernate —— 双向多对一映射(增/删/改数据)
来源:互联网 发布:软件项目管理ppt 编辑:程序博客网 时间:2024/05/29 06:55
双向多对一映射(增/删/改)
tGroup
public class tGroup implements Serializable{ private Long id; private String name; private Set uses = new HashSet(); //省略GET/SET}
tUser
public class tUser implements Serializable{private Long id; private String name;private tGroup tgr//省略GET/SET}
tGroup.hbm.xml
<hibernate-mapping> <class name="com.hibtest2.entity.tGroup" table="t_group"> <id name="id" type="java.lang.Long"> <column name="ID" precision="22" scale="0" /><generator class="sequence"><param name="sequence">seq_emp</param></generator> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="50"></column> </property> <set name="uses" lazy="false" cascade="all"> <key column="group_Id"></key> <one-to-many class="com.hibtest2.entity.tUser"/> </set> </class> </hibernate-mapping>tUser.hbm.xml
<hibernate-mapping> <class name="com.hibtest2.entity.tUser" table="t_user"> <id name="id" type="java.lang.Long"> <column name="ID" precision="22" scale="0" /><generator class="sequence"><param name="sequence">seq_emp</param></generator> </id> <property name="name" type="java.lang.String"> <column name="NAME" length="50"></column> </property> <many-to-one name="tgr" column="group_Id" class="com.hibtest2.entity.tGroup" cascade="save-update"></many-to-one> </class> </hibernate-mapping>test1
新增
session = sf.openSession();session.beginTransaction(); tGroup tg = new tGroup();tg.setName("C++");Set<tUser> set = new HashSet<tUser>();for(int i = 0;i < 2;i++){ tUser tu = new tUser(); tu.setName("a"+i); tu.setTgr(tg); set.add(tu);}tg.setUses(set);session.save(tg);session.getTransaction().commit();session.close();
删除( 从一方删除 )
<many-to-one name="tgr" column="group_Id" class="com.hibtest2.entity.tGroup"cascade="save-update"></many-to-one>
tUser tu = (tUser) session.get(tUser.class, Long.parseLong("46"));session.delete(tu);
删除( 从多方删除 )
<set name="uses" lazy="false" cascade="all">
<key column="group_Id"></key>
<one-to-many class="com.hibtest2.entity.tUser"/>
</set>
tGroup tg = (tGroup) session.get(tGroup.class, Long.parseLong("45"));session.delete(tg);
改
session = sf.openSession();session.beginTransaction(); tUser tu = (tUser) session.get(tUser.class, Long.parseLong("50"));tGroup tg1 = (tGroup) session.get(tGroup.class, Long.parseLong("48"));tGroup tg2 = (tGroup) session.get(tGroup.class, Long.parseLong("51"));tg1.getUses().remove(tu);tg2.getUses().add(tu);tu.setTgr(tg2);session.update(tu);session.getTransaction().commit();session.close();
0 0
- hibernate —— 双向多对一映射(增/删/改数据)
- hibernate对象关系映射( 一对一,一对多,多对一,多对多的单向,双向映射 ——)
- Hibernate 关系映射 —— 双向(一对多)多对一
- hibernate双向多对一映射关系
- hibernate ORM映射:双向多对一
- Hibernate双向多对一映射
- hibernate 关联映射 双向多对一(一对多)
- hibernate映射(三) 之Hibernate双向一对多(多对一)映射
- Hibernate 关系映射 —— 双向多对多
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射
- Hibernate多对多双向/单向映射(一)
- hibernate双向多对一映射文件写法:
- Hibernate关联映射_双向多对一
- Hibernate HelloWorld-07 双向多对一的映射关系
- 20个编写现代CSS代码的建议
- 带您深入了解MYSQL Cast函数
- iOS开发:富文本AttributedString
- 决策树学习
- Android自带的emoji表情的使用
- hibernate —— 双向多对一映射(增/删/改数据)
- JAVA 问题及解答
- Search a 2D Matrix II
- hdu 5477 A Sweet Journey 模拟
- git使用摘要
- iOS 通用赋值model类
- CodeBlocks安装及使用
- TOF相机-非扫描三维成像
- 如何写一个框架:步骤(上)