SSH整合中,HQL查询问题

[color=#FF0000][b]软件环境配置:[/b][/color]Spring2.5+struts2.1+Hibernate3.1+oracle11g

[color=#FF0000][b]问题:[/b][/color]
一个查询的方法,通过hql拼接实现动态查询。在实现按编号查询的时候出现了这样的奇葩问题。。。。
数据库里编号是主键,varchar类型,持久化类对应字段String类型,编号如:0101,0102,0103....0205,0306
在查询0108和0109时报错,其余正常。。。单元测试和tomcat中是一样的结果。不能查询0108和0109。

[b][color=#FF0000]以下是查询 0109 时控制台报错:[/color][/b]
图片说明
[b][color=#FF0000]以下是查询 0107 时控制的查询结果:[/color][/b]
图片说明
[b][color=#FF0000]查询0107时,自动生成的sql代码:[/color][/b]
SQL: select rooms0_.ID as col_0_0_, types1_.NAME as col_1_0_, types1_.ROOMSIZE as col_2_0_, types1_.DPRICE as col_3_0_, types1_.HPRICE as col_4_0_, types1_.DEPOSIT as col_5_0_ from ADMIN5.ROOMS rooms0_, ADMIN5.TYPES types1_ where rooms0_.TYPE_ID=types1_.ID and rooms0_.STATE=1 and rooms0_.ID=[size=18px][color=#FF0000]107[/color][/size] order by types1_.ID, rooms0_.ID

[color=#0000FF][size=24px]这里自动转化成了107????为什么啊???那为什么查询0109和0108不自动转换呢?反而说session已经关闭???[/size][/color]

[color=#FF0000][b]java代码:[/b][/color]

[img=http://img.bbs.csdn.net/upload/201608/18/1471518802_118168.png][/img]

[b][color=#FF0000]Spring(代理了hibernate的sessionFactory)代码:[/color][/b]
<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd ">

<bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName"
        value="oracle.jdbc.driver.OracleDriver">
    </property>
    <property name="url"
        value="jdbc:oracle:thin:@localhost:1521:ORCL">
    </property>
    <property name="username" value="xxxxxxx"></property>
    <property name="password" value="xxxxxxx"></property>
</bean>
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.Oracle9Dialect
            </prop>
        </props>
    </property>
    <property name="mappingResources">
        <list>
            <value>com/accp/entity/Checkin.hbm.xml</value>
            <value>com/accp/entity/Rooms.hbm.xml</value>
            <value>com/accp/entity/Admin.hbm.xml</value>
            <value>com/accp/entity/Reserve.hbm.xml</value>
            <value>com/accp/entity/Types.hbm.xml</value>
            <value>com/accp/entity/Orders.hbm.xml</value></list>
    </property></bean>

<!-- 自动扫描包 -->
<context:component-scan base-package="com.xxx"></context:component-scan>

<!-- 引入事务管理器类 -->
<bean class="org.springframework.orm.hibernate3.HibernateTransactionManager" id="tranManger">
    <property name="sessionFactory" ref="sessionFactory"/>
</bean>

<!-- 事务注解 -->
<tx:annotation-driven transaction-manager="tranManger"/>

1个回答

#FF0000][b]软件环境配置:[/b][/color]Spring2.5+struts2.1+Hibernate3.1+oracle11g
[color=#FF0000][b]问题:[/b][/color]
一个查询的方法,通过hql拼接实现动态查询。在实现按编号查询的时候出现了这样的奇葩问题。。。。
数据库里编号是主键,varchar类型,持久化类对应字段String类型,编号如:0101,0102,0103....0205,0306
在查询0108和0109时报错,其余正常。。。单元测试和tomc

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于在SSH框架整合时,使用hql语句查询出现 XXX is not mapped 的问题

在做SSH框架的整合过程中,新手往往会遇到这个问题。当我们使用hql语句查询时,控制台报错: XXX is not mapped。而此时,很多觉得英语不错的同学就会被自己搞晕。然后开始检查实体类的映射文件*.hbm.xml是否正确,是否将映射文件添加到spring的配置文件中,等等。然后高亮一通,仍不见效。 我们开始正题。大家都知道,Hibernate是一个让我们完全面向对象编程的框架。也就是说

【SSH】使用HQL查询数据

一、前言      小编先前使用过SQL,基本语法自己也会使用。后来在项目中遇到了HQL,稍微有点不同,他到底是什么呢?二、什么是HQL?      HQL(Hibernate Query Language)是Hibernate提供的一种面向对象的查询语言,HQL提供了更加丰富灵活的特性、强大的查询能力,HQL提供了更接近传统的SQL语句的查询语法。三、HQL语法分析3.1 完整的HQL语句结构:[

SSH整合后,HQL查询必须知道的内容,HibernateTemplate中实现分页

前言在之前笔者一直对于HQL查询是很不满意的,因为它不仅不能够实现分页查询,而且通过select attr1,attr2,attr3 from User,查询出来的还都是Object类型的,取值的时候非常不愉快。HQL有选择的的查询出对象类里面的值:第一种方式:我想大家都很熟悉下面这种查询方式,查询出来的值都是对象: @Test public void showFromAll(){

ssh学习:hibernate中 HQL基本 查询

hibernate的基本查询 在Hibernate中常用的查询方式会有三种:hql,标准化条件查询,原生派sql HQL基本查询 HQL:Hibernate uses a powerful query language .  Hibernate uses a powerful query language (HQL) that is similar in appearance to SQL.

hql查询find(hql,values)使用占位符报错,字符串拼接无错

我在映射实体时写错,@Entity导包导错,应该导import javax.persistence.Entity;同时在@ManyToOne时应使用@JoinColumn。

【SSH】Hibernate:常用的HQL语句

Hibernate query language 简称HQL,是实际开发中最长的hibernate查询封装模式。        HQL提供了更加接近传统SQL语句的查询方法: [select/update/delete…] [from…][where…][groupby…] [having …][order by…]        实体查询:       String hql =”f

Spring整合hibernate后如何获得动态查询的信息条数

Spring整合hibernate后,动态查询需要用到内部类,如何获得总信息条数?  下面是代码演示: public Integer findCountByInfo(final Map salChance) {//通过动态条件获得总信息数 StringBuffer hql=new StringBuffer("select count(*) FROM SalChance s WHERE 1=1"

SSH框架问题——hql语句查询级联对象(即:查询出包括当前对象内部维护的对象)的方法。

User hql语句如下: String hql = "from User as user left join fetch user.teacher left join fetch user.student"; List list = getSession().createQuery(hql).list();

【SSH】——hql的使用方式及实现原理

hql,即Hibernate Query Language。它与我们熟知的sql很类似,它最大的特点就是对查询进行了面向对象的封装,下面会在具体例子中说明。 sql查询的是数据库中的表或字段,而hql是面向对象的,具有继承、多态、关联等特性,他针对的是对象。

ssh框架hibernate 查询方式和查询功能优化

Hibernate框架的查询方式*1. 唯一标识OID的检索方式 * session.get(对象.class,OID) 2. 对象的导航的方式3. HQL的检索方式 * Hibernate Query Language -- Hibernate的查询语言4. QBC的检索方式 * Query By Criteria -- 条件查询5. SQL检索方式 * 本地的S

SSH框架中怎么使用Hibernate查询一个对象

************************************************************************************************ 使用uniqueResult()查询一个对象,如果有很多对象就使用list()方法 Dao.impl层写这些代码 @Override public OriginalAccessory findByP

SSH:Hibernate框架(Hibernate:HQL与QBC查询方式详解 )

首先来看一下,hibernate提供的几种检索方式: 1.导航对象图检索方式 :根据已经加载的对象,导航到其他对象。例如,对于已经加载的Customer对象,调用它的getOrders().iterator()方法就可以导航到所有关联的Order对象,假如在关联级别使用了延迟加载检索策略,那么首次执行此方法时,Hibernate会从数据库中加载关联的Order对象,否则就从缓存中取得Order对

解决方法:hql查询无主键表中的数据,返回的结果全是一样的!

在oracle中定义了表titlerecord,其中没有主键,测试数据两条: 001 房门 管理学院 博士 教授 2011-04-12  2011-04-15 001 房门 管理学院 博士 讲师 2009-02-14  2009-02-20 在daoImpl层写

【SSH】hibernate之hql学习

在敲SSH过程中,对于Dao层的查询方法接触了“hql查询”、“离线查询”和“命名查询”,对数据库持久化操作使用更多的是hql方式查询,现对其总结。 一、Hql是什么?       Hql全名Hibernate Query Language,显然它是一种查询语言。一个ORM框架是建立在面向对象的基础上的。虽然HQL的语法类似于SQL,但实际上它的查询目标是对象。HQL拥有面向对象语言的所有的特

关于SSH整合中Hibernate4中的delete( )和update( )方法没反应的解决

在SSH整合中可能是框架本身的bug,导致hibernate4的增删改查中,删除和修改功能没反应,不报错,也没效果,数据库删不掉的。后来仔细推敲可能是是事务没有提交, 通过重新开启事务,自己去提交事务可以解决,修改前后的代码如下:修改前(看delete方法的区别就可以,update一样处理就可以):@Repository("userDaoImpl") public class UserDaoImp

SSH项目中数据库操作使用聚合函数

SQLQuery返回的查询结果为Objecg[],我们要做的就是解析 Session session = getHibernateTemplate().getSessionFactory().openSession(); SQLQuery query2 = session.createSQLQuery("select sum(daypro_num),avg(da

ssh:hql动态查询+多条件自由拼接+模糊查询

@Override public List&amp;lt;Book&amp;gt; getByInfo(String name, String author, String publisher) { Session session=sessionFactory.getCurrentSession(); StringBuffer hql=...

hebernate-hql 两个表按照外键查询所有记录

hebernate的hql查询: 两个表主要结构: Testpathbpel 主要有id和testpathpublic class Testpathbpel { private Integer id; private String testpath; public Integer getId() { return id; } public voi

hql查询日期时间段及时区问题

public List&amp;lt;BasicInfo&amp;gt; getBasicInfoIn2s() { String hql = &quot;from BasicInfo bi where bi.changedate between :start and :end&quot;; List&amp;lt;BasicInfo&amp;gt; ds = createSession().createQuery(hql, BasicInf...

Hibernate教程PPT

Hibernate教程PPT;Hibernate教程 SSH ORM 对象-关系映射 HQL查询;Hibernate教程 SSH ORM 对象-关系映射 HQL查询

关于ssh框架,hql语句直接插入当前时间的问题

hql语句插入当前时间

ssh框架整合时使用hibernateTemplate进行find查询时出现空指针异常的解决办法

学习ssh框架整合时,当进行hibernateTemplate.find(...)查询时出现空指针异常NullPointerException ! 进行junit测试时,即:ApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationContext.xml"); DepartmentDao

ssh参数直接查询+参数的模糊查询

1.如果ajax没有反映,没有运行,有可能是参数有错误,记得检查参数的问题 2.ssh中写的hql语句 带有参数:正常查询@Override public List<Usert> checkPassword(String username) { // TODO Auto-generated method stub String hql = "selec

SSH框架之Hibernate的多种查询方式概述

Hibernate的多种查询方式 一、HQL查询: HQL查询与SQL查询区别: 1)SQL: (结构化查询语句)查询的是表以及字段; 不区分大小写。 2)HQL: hibernate query language 即hibernate提供的面向对象的查询语言。查询的是对象以及对象的属性,区分大小写。 二、Criteria查询:完全面向对象的查询。

hibernate关于in和not in的查询

方法一: @Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true) public List OpUsrroleExList(List grprole) { ArrayList ids = new ArrayList(); for(int i=0;i ids.add(grprole.get(i).getIRole

HQL语句的模糊查询

Hibernate框架中的HQL查询语句非常类似于标准SQL查询语句。因此模糊查询语句也和SQL语句基本一样。用法:"FROM 映射实体类名 WHERE 搜索字段 LIKE '%"+搜索参数+"%'";

java ssh获取记录总数

//第一种方法: String hql = "select count(*) from User as user"; Integer count = (Integer)getHibernateTemplate().find(hql).listIterator().next(); return count.intValue(); //第二种方法: String hql = "sele

整合SSH框架及常见问题解决

如何快速的搭建javaweb应用框架是每一个java程序员必做的事情,通过自己的学习也是初步的可以搭建好ssh框架。下面是详细搭建过程及一些途中遇到的问题和解决方案,博主使用的是myeclipse,方便框架导入 - 新建工程 - 导入spring框架 - 导入Struts框架 - 导入hibernate框架 - 整合配置文件 - spring配置常用bean - 常见问题spring

hql 如何实现多个条件查询自由动态拼接

最近在做多个查询需要自由拼接的时候遇到一些问题,由于项目是ssh,herbinate这种处理在网上比较少,所以记录一下。 下面的select后面为我的model类,where后面则是一下查询条件是否为的判断。 StringBuffer sql = new StringBuffer("select new com.empl.mgr.model.A_User (stuId, stuSchool,

关于SSH整合时遇到的一些问题

小弟最近自学关于SSH版的WEB项目,这几天整合SSH时也报了很多错误。所以特此写下一些遇到的错误以供大家和自己以后借鉴 1.报获取bean空指针 那么很可能你web.xml没有初始化spring.连初始化都没有,那么肯定是空指针。 2.报所在类找不着时,而你确实导进去了,看你是否是先导入WEB-INF目录下的LIB文件夹下。 3.报JSP页面错误时,很可能是版本不支持。在指令改为即可。

Hibernate——Hql实例+详解

Hibernate配备了一种非常强大的查询语言,这种语言看上去很像SQL。完整的HQL语句形式如下:Select/update/delete…… from …… where …… group by …… having …… order by …… asc/desc。同时需要注意的是在hql中关键字不区分大小写,通常小写,类的名称和属性名称必须区分大小写,按照实体的设计去写大小写。     下面从

Hibernate级联查找

Hibernate级联查找 一 、工作目的: 本例主要演示在SSH架构下实现hibernate的级联查找,通过配置文件将多张有关联的表联系在一起,只需一次检索数据库便可查询多表记录,好处是避免多次单表查找影响系统效率,不过目前数据库设计一般不推荐添加外键,而通过配置hibernate级联查找,会在数据库中自动生成索引、外键,使用时需要根据具体场景慎重选择。 二 、开发环境: Mye

SSH分页(Hibernate实现简单分页查询)

直接正题 一、INewsDao.java(DAO接口):  1 package cn.dy.dao;  2   3 import java.util.List;  4 import cn.dy.bean.News;  5   6 public interface INewsDao {  7   8     //其他代码省略  9      10      11 

hibernate使用hql和sql查询总记录数语句

hql: try {Query query = this.sessionFactory.getCurrentSession().createQuery(hql);i = ((Long) query.iterate().next()).intValue();} catch (Exception e) {// TODO: handle exceptioni= 0;}

ssh中出现no session的问题

一般出现这个问题都是采用了懒加载,即fechType=lazy 在多个表的关联关系中经常会遇到A有B的引用,B有C的引用,A和b一对多,B和C一对多。如果采用注解什么也不写,hibernate=默认采用懒加载,即采用load的方法但是当我们在jsp页面调用时就会出现no session的问题。因为事务已经提交session已经关闭。 解决办法: 1、把懒加载换掉 2、在web.xml中配置

在hibernate中查询使用list,map定制返回类型

好文章啊,先转了再说     在使用hibernate进行查询时,使用得最多的还是通过构建hql进行查询了。在查询的过程当中,除使用经常的查询对象方法之外,还会遇到查询一个属性,或一组聚集结果的情况。在这种情况下,我们通常就需要对返回的结构进行处理。     一般情况下,

【SSH三大框架】Hibernate基础第八篇:多对多关联关系的操作

Hibernate的多对多关联关系

SSH整合——Hibernate延迟加载引发的问题

BUG描述: bug1: 如图,所属部门没有显示,所属部门是一个实体类,员工也是一个实体类,其中一个属性就是部门。这里之所以没有显示就是因为Hibernate延迟加载引发的。 延迟加载介绍:(http://blog.csdn.net/xiaoyu714543065/article/details/8213027)这里就是因为一开始加载Employee集合的时候,因为department属性

Hibernate各类概念-如何查询总数

返回满足条件的总数 查询总数 首先还是准备一个有统计函数的语句 select count(*) from ....根据这条SQL语句创建一个Query对象,调用Query对象的uniqueResult()方法,返回一个long型的数据,即查询总数。 import org.hibernate.Query; import org.hibernate.Session; import or

SSH搭建流程以及实现增删查改(整合)

这篇博客是看了百度传课上面的ssh框架视频所记下的笔记。网址为:https://www.chuanke.com/v1982732-196856-1122330.html首先说一下编程环境,我使用的工具如下:MyEclipse2013编程软件,开源免费的MySQL-5.0.22-win32数据库,服务器为Apache-Tomcat-7.0.57,以及数据库界面管理软件SQLyog10。

hibernate的HQL查询语言总结

HQL是Hibernate Query Language的缩写,HQL的语法很像SQL的语法,但HQL是一种面向对象的查询语言。因此,SQL的操作对象是数据表和列等数据对象,而HQL的操作对象是类、实例、属性等。 HQL是完全面向对象的查询语言,因此可以支持继承和多态等特征 HQL查询的步骤: 1,获取 Hibernate Session 对象。 2,编写HQL语句。 3

hibernate_day04_13_HQL多表查询(内连接和迫切内连接)

//1 创建query对象 Query query = session.createQuery("from Customer c inner join c.setLinkMan"); //2 调用方法得到结果 List list = query.list(); HQL内连接 1 内连接查询hql语句写法:以客户和联系人为例 (1)from  Customer  c

[ssh]关于ssh中查询并分页方法的记录

条件查询并分页显示是个很常见的内容。条件查询并分页的基本思路就是: 每次翻页时都将查询条件、当前页数、每页显示多少条等必要参数传到服务器,后端根据这些参数进行条件查询。可能遇到的问题就是: 1、每次翻页时查询条件会被刷新没; 2、如何更高效的将必要分页信息在后端进行传递(如当前页数等); 3、如何回显数据。针对这几个问题的解决思路是: 1、使用ajax进行异步提交查询,这样就不会刷新没查询

SSH整合使用Criteria动态查询及任意关键字多字段模糊查询

很多地方要用到动态查询以及模糊查询  效果截图(类似于开源中国人才汇职位查找): 1、使用Criteria动态查询是很方便的,示例: @Override public List listJobInfoByMultiConditionAction(final String jobInfoClass, final String jobInfoProvince, final Stri

Sql或者hql 查询时 需要多条件时可以使用嵌套查询

例如:from navigation n where n.class_2_number in(select n.id from n where n.visible='1')

使用Hibernate获取最大值(max)的三种方法

转:http://blog.csdn.net/zzr173/archive/2008/12/12/3504856.aspx 获取最大值的三种方法:1. 使用 hsqlLong l = (Long)getSession().createQuery("select max(a.sn) from T a " ).uniqueResult();System.out.println(c);注意:

SSH+HQL语句进行复杂查询的一些小知识点泛谈

getHibernateTemplate() spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修改和删除等操作, 此方法是在配置了spring以后,hibernate由spring接管,不直接使用hibernate的session了 HibernateTemplate提供非常多的常用方法来完成基本的操作,比如通常的增加、删除、修改、查询等

HQL小结及优化

hql  HQL查询:  Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更

SSH中操作Hibernate的事务与删除数…

我们大体了解,Spring框架是为了方便我们编程的。尤其是一些特别麻烦的初始化和结束过程。   啥叫麻烦的初始化和结束过程?   例如:之前写的单独使用Hibernate不含SSH中SS的帖子里     1、先用configure()载入配置xml文件     2、再获取StandardServiceRegistryBuilder类     3、然后获取ServiceRegistry     4、

SSH框架之Hibernate的查询详解(1)、debug断点调试

一、查询概述 1、Get/load主键查询 2、对象导航查询 3、HQL查询,Hibernate Query language hibernate 提供的面向对象的查询语言。 4、Criteria 查询,完全面向对象的查询(Query By Criteria ,QBC) 5、SQLQuery, 本地SQL查询 1)缺点:不能跨数据库平台: 如果该了数据库,sql语句有可能要改。

立即提问
相关内容推荐