- 浏览: 1277398 次
- 性别:
- 来自: 常州
文章分类
- 全部博客 (499)
- java (101)
- linux (82)
- mysql (30)
- javascript (45)
- Oracle (12)
- ext (14)
- 虚拟机 (1)
- 搜索引擎 (2)
- struts2 (11)
- 设计模式 (9)
- nginx (17)
- tomcat (12)
- 随想 (10)
- spring (18)
- svn (1)
- flash (3)
- UML (1)
- 数据结构 (7)
- 算法 (2)
- 网摘 (9)
- 数据库 (15)
- ibatis (3)
- jquery (31)
- lucene (1)
- hibernate (14)
- Myeclipse (4)
- 线程 (7)
- jbpm (4)
- 重构 (1)
- mantis (3)
- MediaWiki (4)
- ExtMail (1)
- MDaemon (1)
- egit (1)
- dwr (7)
- sitemesh (2)
- mybatis (1)
- ico (1)
- hadoop (5)
- jsoup (1)
- urlrewrite (2)
- jstl (1)
- spring3 (2)
- aop (2)
- 定时器 (1)
- Quartz (2)
- apache (1)
- php (1)
- security (1)
- iptables (2)
- QQ (1)
- mysqldump (1)
- vim (1)
- memcached (4)
- jad (1)
- 微博 (1)
- html5 (1)
- css3 (1)
- httpclient (10)
- google (1)
- shortUrl (1)
- json (2)
- virtualBox (1)
- mantisBT (2)
- htmlunit (1)
- selenium (2)
- mail (1)
- 正则表达式 (4)
- html (3)
- css (2)
- jatoolsPrinter (1)
- 图片处理 (1)
- hql (1)
- webservice (1)
- 分词 (3)
- 短信 (1)
- VPS (1)
- 事务 (1)
- 广告 (1)
- 画廊 (1)
- git (3)
- github (1)
- openshift (1)
- 缓存 (1)
- web (3)
- android (3)
- c3p0 (1)
- 邮箱 (1)
- memcache (2)
- windows (2)
- js (14)
- 编辑器 (1)
- 打印 (1)
- centos (5)
- boneCP (1)
- 连接池 (1)
- sql (1)
- nosql (1)
- MongoDB (1)
- 浏览器 (1)
- node (1)
- node.js (1)
- backbone.js (1)
- lazyload (1)
- Switch Off (1)
- Titanium (1)
- 网站架构 (1)
- WebDriver (1)
- APJP (1)
- 代理 (1)
- comet (1)
- kendoui (1)
- UI (2)
- 互联网 (1)
- localStorage (1)
- 记录 (1)
- 微信 (2)
- Sphinx (1)
- netty (1)
- js,mvvm,Avalon (1)
- 安卓 (1)
- Tengine (1)
- 大数据 (1)
- 手机 (1)
- paypal (1)
- SaaS (1)
- gitlab (1)
- nodejs (1)
- React (1)
- shadowsocks (0)
- vpn (0)
- 验证码 (1)
- SSL (2)
- SEO (1)
- IntelliJ (1)
- 敏捷开发 (1)
- 项目管理 (1)
- 爬虫 (1)
- 正则 (1)
- owncloud (1)
- 云存储 (1)
- ajax (1)
- pjax (1)
- jdk (1)
- zookeeper (1)
- phantomjs (1)
- ELK (1)
- springcloud (1)
- IDEA (1)
- hexo (1)
- ss (1)
- letencrypt (1)
最新评论
-
peakandyuri:
这个是有BUG的,数字小体现不出来,数字大了就不对了,但是Ja ...
java十进制转换N进制并反转换的工具类 -
ginolai:
然后是相关配置:/etc/sysconfig/iptables ...
Linux中iptables设置详细 -
bzhao:
我测试没啥区别啊!
Thread.sleep()和Thread.currentThread().sleep()区别 -
zhl549342097:
match == false
Spring Security 3.1 中功能强大的加密工具 PasswordEncoder -
hellotieye:
renzhengzhi 写道drager 写道用jsoup后解 ...
jsoup select 选择器
一段时间不用了,纯属记录,以防忘记了。。。
在hibernate中,多对多关系可以看成是2个 多对一的关系。
在实体UserInfo和Teacher中,都设置many-to-many属性,
属性中需要设置主控方与被控方的inverse和cascade值
出现问题:save the transient instance before flushing
说明:t_s表,不需要单独建实体对象,是一张表
1 CREATE TABLE t_s 2 ( 3 u_id integer NOT NULL, 4 t_id integer NOT NULL, 5 CONSTRAINT t_s_pkey PRIMARY KEY (u_id, t_id), 6 CONSTRAINT t_s_t_id_fkey FOREIGN KEY (t_id) 7 REFERENCES teacher (id) MATCH SIMPLE 8 ON UPDATE NO ACTION ON DELETE NO ACTION, 9 CONSTRAINT t_s_u_id_fkey FOREIGN KEY (u_id) 10 REFERENCES userinfo (id) MATCH SIMPLE 11 ON UPDATE NO ACTION ON DELETE NO ACTION 12 )
UserInfo.hbm.cfg
1 <set name="teachers" table="t_s" inverse="false" cascade="all"> 2 <key column ="u_id"></key> 3 <many-to-many class="Teacher" column="t_id"></many-to-many> 4 </set>
Teacher.hbm.cfg
1 <set name="students" table="t_s" inverse="true" cascade="all"> 2 <key column ="t_id"></key> 3 <many-to-many class="UserInfo" column="u_id"></many-to-many> 4 </set>
测试代码:(*主控方与被控方的设置,先设主控方,在设被控方)
1 ///多对多操作 2 private static void ManyToMany() 3 { 4 Session session=HibernateUnit.getSession(); 5 session.beginTransaction(); 6 7 UserInfo u1=new UserInfo(); 8 UserInfo u2=new UserInfo(); 9 10 Teacher t1=new Teacher(); 11 Teacher t2=new Teacher(); 12 13 u1.setUsername("CC"); 14 u1.setAge(20); 15 u1.setAddress("1111"); 16 u1.setCg(null); 17 18 u2.setUsername("MR"); 19 u2.setAge(20); 20 u2.setAddress("1111"); 21 u2.setCg(null); 22 23 t1.setName("JiangRR"); 24 t2.setName("ChenXD"); 25 26 u1.getTeachers().add(t1); 27 u2.getTeachers().add(t2); 28 t1.getStudents().add(u1); 29 t2.getStudents().add(u2); 30 31 session.save(u1); 32 session.save(u2); 33 34 session.getTransaction().commit(); 35 }
测试效果:
1 Hibernate: select nextval ('userinfo_id_seq') 2 Hibernate: select nextval ('teacher_id_seq') 3 Hibernate: select nextval ('userinfo_id_seq') 4 Hibernate: select nextval ('teacher_id_seq') 5 Hibernate: insert into userinfo (username, age, address, id) values (?, ?, ?, ?) 6 Hibernate: insert into teacher (username, id) values (?, ?) 7 Hibernate: insert into userinfo (username, age, address, id) values (?, ?, ?, ?) 8 Hibernate: insert into teacher (username, id) values (?, ?) 9 Hibernate: insert into t_s (u_id, t_id) values (?, ?) 10 Hibernate: insert into t_s (u_id, t_id) values (?, ?)
发表评论
-
hibernate自定义对象投影查询
2014-07-25 14:53 835List list=dao.find("sele ... -
Hibernate查询返回自定义对象
2014-07-22 14:11 7325/** * Convert query ... -
[记录]最新Hibernate悲观锁最新变更
2013-07-30 10:39 829static LockMode UPGRADE ... -
Hibernate缓存命中机制[转]
2013-03-14 02:15 2739通过这篇文章纪录hibernate二级缓存的一些使用经历,利 ... -
hibernate日志配置
2013-03-14 02:09 2427### direct log messages to ... -
Hibernate缓存机制
2013-01-15 23:00 1070缓存是位于应用程序 ... -
hibernate中使用SQLQuery处理一些hibernate不方便处理的问题(表外连接)
2012-11-02 15:11 1250一般表外链接hibernate是不建议并且支持不好的,所以尽量 ... -
Hibernate中one-to-many的Order-by无法排序的问题
2012-02-02 21:49 2381问题如下: 在一个一对多的双向关联中在一的一方进行如下配置: ... -
hibernate中关于一对多,多对多的二级缓存设置和同步问题
2012-01-01 18:20 1677首先,hibernate中的二级缓存分2块,第一块是moda ... -
利用枚举反射替换hibernate的自定义类型UserType
2011-12-11 00:36 2278因为hibernate枚举类型实在配置繁琐,所以直接用枚举换 ... -
[转]Hibernate中property-ref的使用,常用来解决遗留数据库One To Many关系
2011-10-18 16:52 19271.如表Class(ClassID,Class_No,Clas ... -
Hibernate用Oracle的sequence生成自增Id
2011-10-16 13:59 1239<?xml version="1.0&q ... -
hibernate中one-to-one的应用介绍
2011-10-14 17:20 3427第一种:双向one-to-one,两边都配置one-to-on ...
相关推荐
在Java的持久化框架Hibernate中,多对多(Many-to-Many)关系映射是一种常见的数据库交互模式,它用于表示两个实体之间复杂的关系。在这个场景中,一个实体可以与多个其他实体相关联,反之亦然。例如,在学生和课程...
本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...
这个实例对于初学者理解如何在实际项目中应用Hibernate处理多对多关联特别有帮助。通过查看代码和运行示例,开发者可以深入理解Hibernate是如何自动处理复杂的关联操作,比如通过中间表实现多对多的添加、删除和查找...
下面我们将详细探讨如何在Hibernate中设置一对多非主键关联。 首先,我们需要理解在Hibernate中一对多关联的基本概念。在Java对象中,这通常通过在一方类(拥有多个实例的一方)上定义一个集合属性来表示。这个集合...
本文将深入探讨Hibernate中的一对多和多对一映射关系,并通过一个实际的demo演示它们在增删查改操作中的应用。 首先,我们要理解什么是数据库的关联关系。在数据库设计中,我们经常遇到一种情况,即一个实体可能与...
总之,Hibernate的多对一和一对多操作不仅提供了灵活的关联管理,还允许开发者将复杂的数据关系逻辑封装在应用程序中,从而简化数据库设计,提高代码的可读性和可维护性。然而,这也要求开发者对Hibernate的映射机制...
在这个“hibernate双向多对多关联映射(注解版)”的主题中,我们将深入探讨如何使用Hibernate的注解配置来处理数据库中的双向多对多关联关系。 首先,多对多关联在数据库设计中是指两个实体之间存在多个对应关系,...
该描述提供了一个博客链接,虽然没有直接给出具体内容,但我们可以假设博客内容会详细解释如何在Hibernate中设置和管理多对多双向关联。这通常包括配置实体类、定义关联映射、使用中间表以及进行增删改查操作。在...
标题"Hibernate双向一对多"指的是Hibernate框架中的一个重要关系映射概念,即在一个实体类中,一个实例可以与多个另一个实体类的实例相关联,而在另一个实体类中,每个实例也可以关联到该实体类的一个实例。...
本篇文章将详细讲解"hibernate一对多与多对一"的关系映射概念,以及如何在实际开发中进行配置和使用。 首先,我们来看一下“一对多”关系。在现实世界中,这种关系可以对应到例如一个班级有多个学生,或者一个人...
“Hibernate 一对多,多对一,一对多双向关联”是指在Java持久化框架Hibernate中,实体间常见的三种关联关系。在数据库设计中,这种关联关系是常见的,例如一个用户可以有多个订单(一对多),一个订单对应一个用户...
本项目“Hibernate学习:单向多对一关联 工程”专注于讲解Hibernate中的单向多对一关联映射,这是数据库设计中常见的关系类型,尤其在处理具有层次结构的数据时。 单向多对一关联指的是在一个实体类中有一个引用,...
在这个“hibernate实例(一对多,多对一)”的主题中,我们将深入探讨两种重要的关联关系:一对一(One-to-One)和一对多(One-to-Many)。 **一对一关联(One-to-One)** 在一对一关联中,一个实体与另一个实体之间...
这个压缩包文件“HibernateORM”很可能包含了关于如何在实际项目中设置和使用Hibernate一对多双向关联的示例代码、配置文件或者详细教程。通过学习这些材料,开发者能够深入理解如何在Java应用中利用Hibernate来处理...
18. 示例:不同的映射:除了父子关系映射,还可能有其他类型的映射,如多对多关系映射、一对一关系映射等。这里应该会介绍如何处理这些复杂的映射场景。 19. 最佳实践:最后,文档将总结Hibernate开发中的一些最佳...
在映射文件(.hbm.xml)中,开发者定义了实体类与数据库表之间的映射关系,包括字段与列的对应、主键生成策略、关联关系(一对一、一对多、多对一、多对多)等。此外,还可以通过注解方式进行映射,将这些信息直接...
在Hibernate中,多对多关系通常通过中间表来实现,这个中间表包含两个外键,分别引用参与多对多关系的两个实体。这种设计允许在不破坏数据完整性的前提下,灵活地建立和维护两个表之间的关系。 **二、配置多对多...
在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...
在这个“hibernate 多对多映射实例,学生 选课”项目中,我们将探讨如何使用Hibernate处理多对多关系,以及如何构建一个学生选课的系统。 首先,我们要理解多对多关系。在现实生活中,学生和课程之间就是一个典型的...
总结起来,Hibernate中的一对多/多对一关联是通过主外键映射来实现的,通过注解和配置文件定义实体间的关联关系,利用懒加载或立即加载策略控制数据获取,同时要注意双向关联的维护和级联操作的设置,以确保数据的...