- 浏览: 7339266 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (1546)
- 企业中间件 (236)
- 企业应用面临的问题 (236)
- 小布Oracle学习笔记汇总 (36)
- Spring 开发应用 (54)
- IBatis开发应用 (16)
- Oracle基础学习 (23)
- struts2.0 (41)
- JVM&ClassLoader&GC (16)
- JQuery的开发应用 (17)
- WebService的开发应用 (21)
- Java&Socket (44)
- 开源组件的应用 (254)
- 常用Javascript的开发应用 (28)
- J2EE开发技术指南 (163)
- EJB3开发应用 (11)
- GIS&Mobile&MAP (36)
- SWT-GEF-RCP (52)
- 算法&数据结构 (6)
- Apache开源组件研究 (62)
- Hibernate 学习应用 (57)
- java并发编程 (59)
- MySQL&Mongodb&MS/SQL (15)
- Oracle数据库实验室 (55)
- 搜索引擎的开发应用 (34)
- 软件工程师笔试经典 (14)
- 其他杂项 (10)
- AndroidPn& MQTT&C2DM&推技术 (29)
- ActiveMQ学习和研究 (38)
- Google技术应用开发和API分析 (11)
- flex的学习总结 (59)
- 项目中一点总结 (20)
- java疑惑 java面向对象编程 (28)
- Android 开发学习 (133)
- linux和UNIX的总结 (37)
- Titanium学习总结 (20)
- JQueryMobile学习总结 (34)
- Phonegap学习总结 (32)
- HTML5学习总结 (41)
- JeeCMS研究和理解分析 (9)
最新评论
-
lgh1992314:
[u][i][b][flash=200,200][url][i ...
看看mybatis 源代码 -
尼古拉斯.fwp:
图片根本就不出来好吧。。。。。。
Android文件图片上传的详细讲解(一)HTTP multipart/form-data 上传报文格式实现手机端上传 -
ln94223:
第一个应该用排它网关吧 怎么是并行网关, 并行网关是所有exe ...
工作流Activiti的学习总结(八)Activiti自动执行的应用 -
ZY199266:
获取不到任何消息信息,请问这是什么原因呢?
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息 -
xiaoyao霄:
DestinationSourceMonitor 报错 应该导 ...
ActiveMQ 通过JMX监控Connection,Queue,Topic的信息
在项目中使用HQL时的遇有多个类的嵌套比较发生的异常:
错误信息如下:
org.hibernate.hql.ast.InvalidWithClauseException: with-clause expressions did not reference from-clause element to which the with-clause was associated
错误原因:使用类之间的关联太深了,关联不到相关的对象
/**
* 分页查询 根据查询条件,得到符合条件的订单列表的集合(仅限预定员个人的操作)
*
* @param <T>
* @param vacationorderCondition
* @param paginater
* @return
*/
public <T> Paginater<T> searchPartVacationOrderList(final VacationOrderCondition vacationorderCondition, Paginater<T> paginater) {
Sorter sorter = paginater.getSorter();
if (sorter == null || sorter.isEmpty()) {
sorter = new Sorter().asc("p.createdTime");
}
LimitedList<T> limitedList = findByQuery(new QueryCreator() {
public Query createQuery(Session session) {
DynamicQuery dquery = new DynamicQuery(" select distinct v from VacationOrder v ");
// 机位未确定订单
if (VacationOrderQueryType.Flight_Unknow_order_list == vacationorderCondition.getQueryType()) {
dquery.append(" inner join v.flightOrders vf with vf.status !=" + VacationOrderConfirmStatus.CONFIRM.getCode());
// 酒店未知订单列表
} else if (VacationOrderQueryType.Hotel_unknow_order_list == vacationorderCondition.getQueryType()) {
dquery.append(" inner join v.hotelOrders vh with vh.status !=" + VacationOrderConfirmStatus.CONFIRM.getCode());
// 未读取传真的订单列表
} else if (VacationOrderQueryType.UnRead_fax_order_list == vacationorderCondition.getQueryType()) {
dquery.append(" inner join v.hotelOrders vh join vh.hotelOrder as h with h.orderStatus=" + OrderStatus.FAXED.getCode());
/***
上面深青色的代码如果采用下面蓝色的代码将发生上述异常,原因关联不到相关的对象。
dquery.append(" inner join v.hotelOrders .hotelOrder as h with h.orderStatus=" + OrderStatus.FAXED.getCode());
***/ 特别关注: 在HQL中使用With用于设置查询的限制条件,减少关联的信息。
// 可选项的订单列表
} else if (VacationOrderQueryType.Option_unconfirm_order_list == vacationorderCondition.getQueryType()) {
dquery.append(" inner join v.multipleOrders vm with vm.status !=" + VacationOrderConfirmStatus.NEW);
}
dquery.append(" where (1 = 1) ");
dquery.appendIfNotNull(" and v.id=:orderNo ", "orderNo", vacationorderCondition.getOrderNo());
dquery.appendIfNotEmpty(" and v.cityCode=:cityCode ", "cityCode", vacationorderCondition.getCityCode());
dquery.appendIfNotEmpty("and v.subscriber.name=:operatorName", "operatorName", vacationorderCondition.getOperatorName());
dquery.appendIfNotNull(" and v.orderPaymentType=:orderPaymentType", "orderPaymentType", vacationorderCondition.getOrderPaymentType());
dquery.appendIfNotNull(" and v.vacationType in (:vacationType)", "vacationType", vacationorderCondition.getVacationTypes());
dquery.appendIfNotNull(" and v.vacationcategory in (:vacationcategory)", "vacationcategory", vacationorderCondition
.getVacationCategorys());
dquery.appendIfNotNull(" and v.subscriberId=:subscriberId", "subscriberId", vacationorderCondition.getSubscriberId());
dquery.appendIfNotEmpty(" and v.productMgr=:productMgr", "productMgr", vacationorderCondition.getProductMgr());
// 构建其他的查询条件的信息
if (vacationorderCondition.getQueryType() != null) {
createDynamicQuery(vacationorderCondition.getQueryType(), dquery);
}
return dquery.build(session);
}
}, paginater.getLimit(), sorter);
return paginater.fromLimitedList(limitedList);
}
发表评论
-
【转】在项目中使用多个数据源-多sessionFactory方案
2013-05-10 16:30 3131适用范围:适合SSH架构访问多个数据库, ... -
Hibernate使用中从数据库到模型的加载方式研究
2010-01-28 13:19 1966在项目中数据库中账单Bill一个字段是有多个订单id的以逗 ... -
hibernate中@Transient的使用
2010-01-19 15:20 10707项目中可能有许多实体的需要辅助的属性和方法辅助,hibe ... -
关于hibernate中注解和hbm共存时的加载规律
2010-01-19 15:13 3805项目中使用Spring2.5+hibern ... -
hibernate查询的使用的点滴积累
2010-01-09 13:04 1915/** * 前台查询酒店的级别,设备,类型 * * ... -
Hibernate 的HQL中一个经典函数elements的使用
2010-01-09 12:53 10347在传递索引和元素给集合时(elements and indic ... -
Hibernate关联查询中with的经典使用
2010-01-09 12:42 2215在项目采用Hibernate关联,采用关联使用比较简单,在关 ... -
判断数据库表每条记录中时间段是否在每一个时间段中
2010-01-09 12:35 3100项目中一个成品价格表,每条记录中的价格有一个使用时间 ... -
JPA 中注解一个父类中多个子类实现查询部分子类方法解决方法
2010-01-09 12:10 2072父类: @Entity@Inheritance(stra ... -
Hibernate调用执行存储过程
2010-01-09 12:03 2035项目中需要采用存 ... -
Hibernate的事件和拦截器体系
2009-12-01 13:53 2362持久层框架底层的拦截器机制是对诸如Spring等业务管理容器拦 ... -
Hibernate的拦截器和监听器
2009-12-01 13:52 1978最近项目需要,用到了Hibernate的拦截器和监听器,有些小 ... -
Hibernate的拦截器和监听器
2009-12-01 13:50 3804项目采用Spring构建,持久层技术采用的是 JPA规范 + ... -
Hibernate的注解many-to-one
2009-11-28 12:12 23277項目中一個實例: ... -
Hibernate查询语言HQL 八大要点
2009-11-18 13:15 2014本文讲述Hibernate查询语言HQL。Hibernat ... -
条件查询(Criteria Queries
2009-11-18 13:14 1774... -
Hibernate查询语言(Query Language), 即HQL
2009-11-18 13:05 2480Hibernate查询语言(Query L ... -
Hibernate中的配置属性
2009-11-15 17:40 1760hbm2ddl.auto的使用配置说明: <!-- ... -
Hibernate JPA 的索引的使用
2009-11-15 17:30 11885在Hibernate中Model中一个对象关 ... -
Hibernate缓存性能监听
2009-11-15 17:23 1698Statistics接口提供三种类别的统计信息: ...
相关推荐
在此背景下,《很不错的Hibernate解决方案》一文介绍了一种基于Hibernate框架的物流系统持久层解决方案,旨在解决当前物流系统中存在的问题,并提升整体性能。 #### Hibernate框架简介 Hibernate是一种开放源代码的...
Hibernate是一个强大的Java持久化框架,它允许开发者将对象模型与关系数据库进行映射,从而简化了数据库操作。在处理多数据库支持时,Hibernate提供了一些策略和技巧来确保应用程序能够在不同类型的数据库之间灵活...
### Hibernate常见错误解决方案 在开发基于Hibernate框架的应用程序时,我们经常会遇到各种各样...通过以上分析与解决方案,我们可以有效地识别和解决Hibernate中常见的异常问题,从而提高开发效率和应用程序的质量。
在使用Hibernate进行数据库操作时,有时会遇到一种异常情况,即在尝试删除一个对象时,系统抛出"deleted object would be re-saved by cascade (remove deleted object from associations)"的异常。这个异常通常发生...
### Hibernate查询解决方案详解 #### 一、概述 Hibernate 是一个开放源代码的 ORM(对象关系映射)框架,它提供了从 Java 类到数据库表的映射机制,以及数据的查询和获取方式。Hibernate 的核心功能之一是提供了...
### Hibernate 错误解决方案 #### 一、概述 在使用Hibernate框架进行开发的过程中,经常会遇到各种各样的异常问题。这些问题可能会导致程序无法正常运行,甚至影响到系统的稳定性。本文将针对几个常见的Hibernate...
Hibernate 是一个流行的 Java 持久层框架,但是在实际开发中,我们经常会遇到各种异常。了解这些异常的原因和解决方案是非常重要的。本文将介绍 Hibernate 中的一些常见异常,包括 ...
`scroll()`方法返回一个`ScrollableResults`对象,允许我们以游标方式处理结果集,这在处理大量数据时非常有效。同样,我们需要定期调用`flush()`和`clear()`以控制内存使用。例如: ```java Session session = ...
### Hibernate中文问题解决方案 在开发基于Java的应用程序时,Hibernate作为一个强大的对象关系映射(ORM)框架被广泛采用。然而,在处理中文字符时,开发者可能会遇到各种各样的问题,如乱码显示等。本文将详细...
任何框架都有自身的能力范围,就拿Hibernate和Mybatis这两个ORM框架来说。 Hibernate封装了很多有用的API给开发者,降低了操作数据库的难度和复杂度,同时也减少了模板代码的数量,但Hibernate留给开发者可操作的...
总结起来,这个多数据库解决方案利用Spring的IoC容器管理和配置了多个数据源,同时结合Hibernate提供了ORM功能。通过`OpenSessionInView`模式,确保了Web请求中的持久化操作能在合适的Session上下文中进行。这样的...
一、Hibernate 异常解决方案 * org.hibernate.TransientObjectException: 对象引用了未保存的瞬态实例 + 解决方案:检查对象是否已经被保存,如果没有,则需要调用 save() 或 update() 方法来保存对象。 * org....
综上所述,"Struts+Spring+Hibernate通用分页解决方案"是一个高效的Java Web开发策略,它充分利用了三大框架的优势,实现了数据的灵活分页,提高了应用的性能和用户体验。通过深入理解并实践这些技术,开发者可以更...
weblogic10 与hibernate冲突解决方案 错误如下:org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken linux windows 环境解决方案全解 Linux 启动脚本添加如下: export USER_...
#### 解决方案一:调整Hibernate的映射方式 在Hibernate中执行原生SQL查询时,可以通过`addScalar`方法指定返回值的类型,从而改变Hibernate对char类型字段的处理方式。具体操作如下: ```java Session session = ...
- `lazy="proxy"`:表示Hibernate将为`Dept`实体创建一个代理对象,只有当真正访问到`Dept`对象的相关属性时,Hibernate才会发起数据库查询,加载实际的`Dept`对象。 - `fetch="select"`:默认值,表示在查询`Emp`时...
当Hibernate尝试保存一个实体时,如果该实体中的某个被标记为`@NotNull`或在映射文件中定义为`not-null="true"`的属性值为null或者指向一个尚未持久化的瞬态(transient)对象,就会抛出此异常。解决方法是确保在...
### Hibernate 实现动态表查询的多种解决方案 #### 一、前言 在使用Hibernate进行数据库操作时,我们经常需要根据不同的需求对不同的表进行查询。特别是在处理多表、多库等复杂场景时,如何实现动态表查询就显得尤...