- 浏览: 6306911 次
- 性别:
- 来自: 一片神奇的土地
文章分类
- 全部博客 (745)
- JQuery (25)
- JS (33)
- 数据库 (59)
- Java基础 (56)
- JSON (8)
- XML (8)
- ireport (7)
- 设计模式 (10)
- 心情 (14)
- freemarker (1)
- 问题 (15)
- powerdesigner (2)
- CSS (15)
- DWR (4)
- tomcat (16)
- Hibernate (12)
- Oracle (7)
- Struts (7)
- Spring (34)
- JSP (23)
- 需学习 (64)
- 工具类库 (63)
- Maven (14)
- 笔试题 (34)
- 源码学习 (31)
- 多线程 (39)
- Android (32)
- 缓存 (20)
- SpringMVC (14)
- jQueryEasyUi (12)
- webservice-RPC (13)
- ant (1)
- ASP.NET (10)
- 正则表达式 (3)
- Linux (15)
- JBoss (1)
- EJB (3)
- UML (2)
- JMS (3)
- Flex (8)
- JSTL (2)
- 批处理 (5)
- JVM (16)
- 【工具】 (16)
- 数据结构 (29)
- HTTP/TCP/Socket (18)
- 微信 (1)
- tomcat源码学习 (15)
- Python (30)
- 主机 (2)
- 设计与架构 (19)
- thrift-RPC (2)
- nginx (6)
- 微信小程序 (0)
- 分布式+集群 (12)
- IO (1)
- 消息队列 (4)
- 存储过程 (8)
- redis (9)
- zookeeper (5)
- 海量数据 (5)
最新评论
-
360pluse:
技术更新,战术升级!Python爬虫案例实战从零开始一站通网盘 ...
Python爬虫实战:Scrapy豆瓣电影爬取 -
18335864773:
推荐用 pageoffice 组件生成 word 文件。
JAVA生成WORD工具类 -
jjhe369:
LISTD_ONE 写道起始地址为163.135.0.1 结束 ...
IP地址与CIDR -
baojunhu99:
private final int POOL_SIZE = 5 ...
使用CompletionService获取多线程返回值 -
LovingBaby:
胡说,javascript 运行时是单线程的,event lo ...
Ajax请求是否可以实现同步
1、A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance
Hibernate中one to many设置cascade="all"的话,那么在进行联机操作的时候,如果把一端设置成inverse="false",当进行删除的时候,删除one表记录, many一方 不会删除,而是把关联字段设置成null,这样会出现孤立的 many方 数据!解决办法就是设置 cascade="all-delete-orphan"。然而这种简单的设置,会出现上述问题。
当<set name="children" inverse="true" cascade="all">时,通过parent.getChildren().remove(child1);只是使child1游离成为一个“孤儿”,并不能将child1持久化到数据库表中的记录也删除。但如果cascade="all-delete-orphan"(orphan为“孤儿”),则会将child1持久化到数据库表中的记录也删除掉。
// 酒店:hotel 标志物:building
// 这二者之间是一对多的关系,一个酒店对应多个标志物。
// 酒店的配置文件中设置了对标志物的 cascade="all-delete-orphan"
执行如下代码:
TbHotelDAO hotelDAO =new TbHotelDAO();
TbHotel hotel = hotelDAO.findById(44);
hotel.setHotelName("12345");
TbBuilding building2 = new TbBuilding();
building2.setTbHotel(hotel);
building2.setDistance("234米");
building2.setBuildingName("阿斯顿");
Set tbBuildings = new HashSet();
tbBuildings.add(building2);
hotel.setTbBuildings(tbBuildings);
hotelDAO.update(hotel);
报出如下异常:
A collection with cascade="all-delete-orphan" was no longer referenced by the owning entity instance:。。。。。。。。。。。
解决办法:
将代码
Set tbBuildings = new HashSet();
tbBuildings.add(building2);
hotel.setTbBuildings(tbBuildings);
修改为:
Set tbBuildings = hotel.getTbBuildings();
tbBuildings.clear();
tbBuildings.add(building2);
设置位置:
<set name="hotelbookpaxdetails" cascade="all-delete-orphan" inverse="true" order-by="paxid"> <key> <column name="bookingno" length="20" not-null="true" /> </key> <one-to-many class="com.techson.himsnanhwa.admin.hibernate.hbm.Hotelbookpaxdetail" /> </set>
先清空Set中以前的数据,再保存新数据!
2、catalog
我用myEclipse开发,基本上POJO和hbm.xml的配置文件都是自动生成的,
自动生成好的配置文件里面有一个 <catalog>这个属性,默认是数据库名
我怎么看到好多资料上面建议把这个属性去掉,说可能出现问题,究竟这个属性有什么用??
下面的catalog="onlinetest"指定了数据库为onlinetest,弄得我一直在纳闷前面的hibernate.cfg.xml里的connection.url指定的databaseName怎么就不见效果了呢。看来学习上还要认真才是!
<hibernate-mapping>
<class name="onlinetest.Hibernate.Teacher" table="teacher" catalog="onlinetest">
<id name="id" type="integer">
<column name="id" />
<generator class="native" />
</id>
<property name="name" type="string">
<column name="name" length="20" />
</property>
<property name="password" type="string">
<column name="password" length="50" not-null="true" />
</property>
</class>
</hibernate-mapping>
3、 Illegal attempt to associate a collection with two open sessions;
http://www.iteye.com/topic/60399
http://fuaotech.iteye.com/blog/1298826
解决方法:把ID查询和删除放到一个事物中即可。
@Transactional(propagation = Propagation.REQUIRED) public void delete(Long id) throws SystemException { Hotel hotel = findById(id); this.getBaseDao().delete(hotel); log.info(" delete ok."); }
4、当Group 表中使用entity-name时,以他作为对象的表也需加上entity-name,否则会报错:
An association from the table User refers to an unmapped class
Group.hbm.xml:
<class name="Group" entity-name="Tgroup" >
<id name="groupId">
<generator class="uuid"></generator>
</id>
<property name="groupName"/>
</class>
</hibernate-mapping>
User.hbm.xml:
<class name="User">
<id name="id" column="idd">
<generator class="uuid"></generator>
</id>
<property name="name"/>
<property name="pw"/>
<many-to-one name="group" entity-name="Tgroup" column="groupId" cascade="all"/>
</class>
</hibernate-mapping>
<class name="Group" table="TTgroup" >
<id name="groupId">
<generator class="uuid"></generator>
</id>
<property name="groupName"/>
</class>
</hibernate-mapping>
<class name="User">
<id name="id" column="idd">
<generator class="uuid"></generator>
</id>
<property name="name"/>
<property name="pw"/>
<many-to-one name="group" column="groupId" cascade="all"/> </class> / /这个地方可以什么都不加了
</hibernate-mapping>
了解
发表评论
-
FileNotFoundException: http:\localhos46087125.jpg (文件名、目录名或卷标语法不正确
2017-02-10 11:46 2987java.io.FileNotFoundException ... -
ClassLoaderTest
2016-11-23 17:35 1096JVM类加载机制1 JVM类加载机制2 JRE下的rt ... -
关于 HTTP GET/POST 请求参数长度最大值的一个理解误区
2016-06-02 17:55 9821关于 HTTP GET/POST 请求参数长度最大值的一个 ... -
strust_spring_hibernate的优缺点
2014-10-08 09:41 2713struts框架具有组件的模块化,灵活性和重用性的优点,同时 ... -
Hibernate实现原理 与 缺点
2014-09-26 17:55 10342Hibernate是怎样实现呢?主要是依据反射机制。 ... -
数据库报错问题
2014-09-23 11:04 4901、mysql报‘mysql 1064 42000’ ... -
时间复杂度
2014-09-19 09:52 3347百度百科-时间复杂度 等差: 等比: ... -
Tomcat问题总结
2014-08-22 10:42 65101、Tomcat下WAR包和同名已解压项目,如何加载?? ... -
项目转换问题
2014-08-12 09:19 5854在Myeclipse buildpath 加ser ... -
Project facet Dynamic Web Module version 3.0 is not supported.
2014-04-22 17:52 15829java项目中,若切换服务器,经常会涉及到动态web模块版本 ... -
No Hibernate Session bound to thread, and configuration does not allow creation
2013-09-27 10:47 2629假设有以下类: @Transactional ... -
springMVC传递LIst
2013-06-08 10:11 11887用下面的方式可以传递List形式的参数,达到我的目的 ... -
spring mvc 给action添加事务不成功的原因
2013-04-23 14:05 8455<context-param> ... -
问题总结
2011-08-25 15:50 20391、javax.servlet.jsp.JspExcept ... -
Unknown entity
2011-07-30 09:27 16原因有两个: 1、导包错误 import java ... -
Flex问题:myeclipse中没有add web project capability
2011-07-06 12:22 3022在将flex转为web项目时,发现没有add web proj ... -
Premature end of file. Nested exception: Premature end of file.
2011-07-05 16:53 169DOM4J 操作XML: 可能是这次读取前该文件已被读取 ... -
[转]hibernate的Hql总结
2011-05-27 11:31 16751. 查询整个映射对象所有字段 //直接from查询出来 ... -
一对多里对 set 的排序
2011-05-17 10:28 3666一对多里面对 set 的排序,建议采用以下办法: ... -
[转]使用hibernate所遇到的问题总结
2011-03-26 10:11 741、catalog 我用myEclipse开发,基本上P ...
相关推荐
hibernate注入的三种方式
hibernate3学习总结hibernate3学习总结hibernate3学习总结hibernate3学习总结
Hibernate框架知识点的梳理;对HQL检索、检索策略、以及如何配置详细的进行描述
hibernate 常见异常非常不错的,hibernate 常见异常非常不错的
Hibernate注解用法总结
关于 Hibernate 的学习总结ppt 内包含了 inverse 的看法与eclipse安装 Hibernate 插件
关于对Hibernate关联映射的一个总结,其中有各种映射的例子,详细用法 等
hibernate开发的关系: one-to-one,many-to-one,many-to-many学习经验总结
hibernate面试题总结
hibernateSpring总结hibernateSpring总结
本人做系统时遇到的一些Hibernate问题及解决方案。
hibernate 对象关系映射总结hibernate 对象关系映射总结hibernate 对象关系映射总结
hibernate常见异常,hibernatejpa注解使用开发的解决方案
hibernate学习总结文档,帮助快速入门
Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结Hibernate总结...
整理了hibernate常见的异常,有了此文档,开发中遇到的Hibernate异常调试更轻松
Hibernate4总结文档,方便查看Hibernate的配置和使用!
Hibernate关联关系总结 一对多 多对一 多对多
Hibernate Annotation 笔记 总结 注解 注解事务,声明事务,详解。
详细讲解hibernate的关联关系,以及用实例讲解,非常详细