- 浏览: 831053 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
报错信息:could not find setter for rownum_
还原现场:在mysql环境下,以下代码,在mysql下运行正常,但是切换到oralce,报出找不到STUDENTNAME属性的错误。
分析:原来是oracle自动将列映射的studentName转换为大写的STUDENTNAME,所以不能映射,报类找不到STUDENTNAME的set方法。
解决办法:添加addScalar方法,代码如下:
Tip: the addScalar() calls were required on HSQLDB to make it match a property name since it returns column names in all uppercase (e.g. "STUDENTNAME"). This could also be solved with a custom transformer that search the property names instead of using exact match - maybe we should provide a fuzzyAliasToBean() method ;
还有一种方式解决,就是使用双引号将别名包裹起来,感觉不是很优雅。像这样
createSQLQuery setFirstResult设置起始记录,setMaxResult设置结束记录 sql里有用分组函数,返回非持久化对象 当firstResult=0,正常,当firstResult>0时,报错。 大家是否遇到过?
问题补充:报错信息:could not find setter for rownum_
用createSQLQuery的方式,查询的结果setResultTransformer()了一下。
并且设置了firstResult和MaxResult.
现象:
当firstResult为0的时候,一切正常,当firstResult不为0的时候报 “could not find setter for rownum_”的错误
如果不setResultTransformer,设置的firstResult和MaxResult不受影响。
主要是改sql
1、别名要大写
如:select day DAY,count(id) COUNT from t_name group by day
像楼下给的链接的解释,oracle自动将别名大写,但是如果自己设置了小写的,就会出现上面的问题。 为了避免addScalar多个,建议将别名直接大写。
2、当然你可以采用多个addScalar,这样只会,你就不能封装为通用的dao了。
还原现场:在mysql环境下,以下代码,在mysql下运行正常,但是切换到oralce,报出找不到STUDENTNAME属性的错误。
List resultWithAliasedBean = s.createSQLQuery( "SELECT st.name as studentName, co.description as courseDescription " + "FROM Enrolment e " + "INNER JOIN Student st on e.studentId=st.studentId " + "INNER JOIN Course co on e.courseCode=co.courseCode") .setResultTransformer( Transformers.aliasToBean(StudentDTO.class)) .list();
分析:原来是oracle自动将列映射的studentName转换为大写的STUDENTNAME,所以不能映射,报类找不到STUDENTNAME的set方法。
解决办法:添加addScalar方法,代码如下:
List resultWithAliasedBean = s.createSQLQuery( "SELECT st.name as studentName, co.description as courseDescription " + "FROM Enrolment e " + "INNER JOIN Student st on e.studentId=st.studentId " + "INNER JOIN Course co on e.courseCode=co.courseCode") .addScalar("studentName") .addScalar("courseDescription") .setResultTransformer( Transformers.aliasToBean(StudentDTO.class)) .list();
Tip: the addScalar() calls were required on HSQLDB to make it match a property name since it returns column names in all uppercase (e.g. "STUDENTNAME"). This could also be solved with a custom transformer that search the property names instead of using exact match - maybe we should provide a fuzzyAliasToBean() method ;
还有一种方式解决,就是使用双引号将别名包裹起来,感觉不是很优雅。像这样
String sql = "select id as \"id\",iata as \"iata\",flight as \"flight\",dest as \"dest\",domint as \"domint\" " + " ,sdt as \"sdt\",task_nature as \"taskNature\",est_date as \"estDate\",act_date as \"actDate\",remark as \"remark\" " + " from FIDS_DEPF";
createSQLQuery setFirstResult设置起始记录,setMaxResult设置结束记录 sql里有用分组函数,返回非持久化对象 当firstResult=0,正常,当firstResult>0时,报错。 大家是否遇到过?
public List findBySql(String sql, List params, int pageNo, int pageSize, Class clazz) { SQLQuery sqlQuery = getCurrentSession().createSQLQuery(sql); if (params != null && !params.isEmpty()) { for (int i = 0, size = params.size(); i < size; i++) { sqlQuery.setParameter(i, params.get(i)); } } sqlQuery.setFirstResult((pageNo - 1) * pageSize); sqlQuery.setMaxResults(pageSize); sqlQuery.setResultTransformer(Transformers.aliasToBean(clazz)); return sqlQuery.list(); }
问题补充:报错信息:could not find setter for rownum_
用createSQLQuery的方式,查询的结果setResultTransformer()了一下。
并且设置了firstResult和MaxResult.
现象:
当firstResult为0的时候,一切正常,当firstResult不为0的时候报 “could not find setter for rownum_”的错误
如果不setResultTransformer,设置的firstResult和MaxResult不受影响。
主要是改sql
1、别名要大写
如:select day DAY,count(id) COUNT from t_name group by day
像楼下给的链接的解释,oracle自动将别名大写,但是如果自己设置了小写的,就会出现上面的问题。 为了避免addScalar多个,建议将别名直接大写。
2、当然你可以采用多个addScalar,这样只会,你就不能封装为通用的dao了。
发表评论
-
hibernate是否只需要一个commonDao?
2014-01-15 13:15 1825在开发中,经常遇到一个项目只有一个dao(即 ... -
hibernate缓存介绍
2013-02-28 10:12 1059Hibernate 中提供了两级Cache,第一级别的缓存 ... -
hibernate主键生成策略介绍
2013-02-28 10:10 1076Assigned Assigned方式由程序生成主键 ... -
Spring2.5.6+Struts2.1.6+Hibernate3.2升级到Spring3.1.3+Struts2.3.4+Hibernate3.6Final
2012-11-02 19:50 16241. Struts2.3.4相对于Struts2. ... -
Spring事务配置的五种方式
2012-10-03 22:15 1147前段时间对Spring的事务配置做了比较深入的研究,在此之间 ... -
hibernate SQLQuery实践指南
2012-07-06 17:16 1160hibernate SQLQuery实践指南 两个表(实体) ... -
json hibernate延迟加载问题
2011-08-31 11:41 1114JsonConfig jsonConfig = new Jso ... -
解决a different object with the same identifier value was already associated with
2011-08-25 09:25 2041解决a different object with the s ... -
hibernate query和Criteria分页查询的区别
2011-08-19 09:55 1872Query Q = session.createQuery(& ... -
配置Hibernate二级缓存
2011-08-15 16:04 1005Hibernate二级缓存也称为进程级的缓存或SessionF ... -
hibernate一级缓存和二级缓存的区别
2011-07-04 09:36 1083缓存是介于应用程序和 ... -
org.hibernate.PersistentObjectException: detached entity passed to persist异常
2011-01-24 09:06 1733情形:用户注册,或则使用到 sessionFactory.ge ... -
数据库方言
2010-08-26 10:57 1485RDBMS 方言 DB2 org.hibernate. ... -
Java框架的下载地址
2010-08-26 10:15 1233hibernate的下载地址: http://sourcefo ... -
hibernate的timestamp类型处理
2010-08-05 13:19 1975数据库库表某字段是timestamp类型,而要对这个字段进行时 ... -
hibernate数据类型与OR映射
2010-08-05 13:16 13511、Hibernate 基本数据类型 Hibernate基 ... -
hql时间比较
2010-08-04 16:37 2598/** * 获取现在时间 * ... -
Ibatis关于null的处理
2010-07-12 12:29 3008使用Ibatis作为数据库持久层的人都有体会,Ibatis 对 ... -
hibernate分页
2010-06-30 15:34 1121public List<Content> find ... -
Hibernate Annotation简单实现
2010-04-21 15:38 2157<!--[if !supportLists]--> ...
相关推荐
在学生课绩管理系统中,JavaBean可以作为数据模型,封装学生的个人信息和成绩数据,提供getter和setter方法供其他组件调用,增强了代码的复用性和可维护性。 4. SQL Server数据库:作为后台数据存储,SQL Server...
8. **日志和统计**:系统可能会记录用户的操作,同时提供访问统计信息,帮助管理员监控网站的使用情况。 9. **安全防护**:通过密码保护、登录尝试限制、定期备份和安全更新等方式,保护网站免受恶意攻击。 10. **...
标题与描述概述的知识点主要集中在Hibernate映射过程中可能遇到的各种异常情况,这涉及到数据库与对象模型之间的映射问题,以及Hibernate框架在处理这些映射时可能产生的错误。下面将对这些异常进行详细的解释和分析...
在编程领域,尤其是在面向对象编程(OOP)中,封装是核心概念之一。它涉及到将数据和操作这些数据的方法捆绑到一个独立的单元——类中,以保护数据的安全性。私有属性是类中的一种特性,它们是隐藏的,不能直接从类...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者通过面向对象的方式来操作数据库,而无需直接编写SQL语句。在这个场景中,我们将探讨如何使用Hibernate与SQL Server 2005数据库进行...
**问题描述**:执行Hibernate查询语句时,系统提示`couldnotexecutequery`错误,并附带有SQL语法错误的信息。 **可能原因**:这类错误通常是由SQL语法错误引起的,具体包括但不限于: 1. **关键字冲突**:数据库中...
**使用Hibernate访问SQL Server数据库** Hibernate是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了一种在关系数据库和面向对象编程之间架起桥梁的方式。通过使用Hibernate,我们可以避免编写大量的SQL...
Python 面向对象编程 - 封装、继承和多态 在 Python 中,面向对象编程是一种非常重要的编程范式。它提供了封装、继承和多态等机制来帮助开发者更好地组织和复用代码。在本节课中,我们将学习 Python 中的封装、继承...
C的结构生成器[用Java编码]。 先进的改进和发展: FacuFalcone-CaidevOficial [Java]。 主意: 圣地亚哥·埃雷拉·布尔戈斯[C语言]。 private static String StartCourse(){ String message = " Keep Learning and...
根据给定的文件标题“用类来封装学生的信息”及描述来看,虽然示例代码实际上并未涉及学生信息的封装,而是展示了如何通过类来管理包裹信息(包括普通包裹、两天到达包裹以及次日达包裹)。这里我们将重点放在理解类...
3. `net.sf.hibernate.PropertyNotFoundException: Could not find a setter for property name in class …` 这个异常表示Hibernate无法找到Java类中与XML映射文件中指定的属性相对应的getter或setter方法。确保...
vue新建项目出现问题 替换这个文件
// 构造函数、getter和setter方法... } ``` 接下来,创建一个适配器(如CommentAdapter.java),将Comment对象转换为ListView可显示的视图: ```java public class CommentAdapter extends ArrayAdapter<Comment>...
**PropertyNotFoundException: Could not find a setter for property name in class hibernate.Hello_Bean** **异常描述:** 此异常表明Hibernate试图为实体类中的某个属性设置值时找不到对应的setter方法。 **...
- **概念**: Hibernate的设计遵循面向对象的思想,将实体对象和数据库之间的转换封装在内部。 #### 3. 持久化类(Persistent Classes) - **定义**: 持久化类是指与数据库中的表相对应的Java类。 - **要求**: 必须有...
Hibernate是一个流行的ORM(Object-Relational Mapping)框架,它为开发者提供了对JDBC的轻量级封装,简化了数据库操作。使用Hibernate,开发者可以更专注于业务逻辑,而不是底层的SQL语法。在搭建Hibernate项目时,...
错误信息:`could not resolve property: trackDate of: ookj.domain.TjReagentTrack` 这个错误通常是因为Hibernate找不到实体类`TjReagentTrack`中名为`trackDate`的属性。这可能是由于映射配置错误,比如在配置...
在Python编程语言中,私有属性(private attributes)是一种封装机制,用于限制对象内部状态的直接访问,以保护数据的完整性。本教程“圣诞树python-31-获取和修改私有属性值”将深入探讨如何在Python中处理私有属性...
软件名称:排版助手 GIDOT TYPESETTER 当前版本:3.0.6 作者:GIDOT 邮箱:GIDOT@VIP.QQ.COM 网站:WWW.GIDOT.CN/TYPESETTER 新增功能: ·批量排版功能 ·多文本文件合并成单一文本文件 功能改进: ·将排版工具...