hibernate3处理mqsql数据库decimal类型比较查询出错

问题描述

项目中用到别人创建的数据库,不能修改数据库结构,商品表中有个销售价格字段 sell_price decimal(11,2),要对它进行比较查询,大致就是要查价格处于什么范围的商品,这里以大于或等于为例(即最低价格)。Condition类未查询条件类,里面有id和minPrice等属性。我用hibernate3操作数据库,报出如下错误,请知道解决办法的仁兄不灵赐教,不胜感激。实现代码public List<Products> getProductsList(Condition condition){String hql = "FROM Products p WHERE 1=1 AND p.pid=:id AND p.sell_price >= :min" Query query = getSession().createQuery(hql);query.setLong("id", condition.getId());query.setBigDecimal("min", condition.getMinPrice());//query.setDouble("min", condition.getMinPrice().floatValue());}Condition c = new Condition(); c.setId(2); BigDecimal min= new BigDecimal("20.00"); c.setMinPrice(min);错误内容Exception in thread "main" org.hibernate.QueryException: could not resolve property: sell_price of: com.boling.model.pojo.Products [FROM com.boling.model.pojo.Products p WHERE 1=1 AND p.pid=:id AND p.sell_price >= :min] at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44) at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38) at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1358) at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279) at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386) at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:566) at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241) at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188) at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94) at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90) at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728) at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216) at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041) at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3645) at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762) at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1690) at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776) at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577) at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281) at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229) at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228) at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160) at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77) at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623) at com.boling.model.impl.ProductManagerImpl.getProductsList(ProductManagerImpl.java:130) at com.boling.model.impl.ProductManagerImpl.main(ProductManagerImpl.java:225)Java Result: 1 问题补充:ekian 写道

解决方案

要把decimal类型的sell_price 转换成float类型的,才可以

时间: 2024-11-10 00:10:51

hibernate3处理mqsql数据库decimal类型比较查询出错的相关文章

数据库Decimal类型,和Double类型数字比较大小?

问题描述 数据库Decimal类型,和Double类型数字比较大小? System.out.println(list.get(0).get("sum(c.couponfee/100)")); BigDecimal sum = new BigDecimal((Double)(list.get(0).get("sum(c.couponfee/100)"))); BigDecimal max = new bigd /* for(int i=0;i BigDecimal s

sql-数据库不同类型字段查询比较出错

问题描述 数据库不同类型字段查询比较出错 支出表 zhichu 里面 有 总金额 zje 字段,是 varchar类型,存储的时候可以是数字也可以是 包含文字和数字的,如 大约100.200.99.另计等 现在想查询zje 中纯数字的字段来比较大小,总是报错 查询语句如下 select zje from ( select cast(zje as decimal(10,2)) as zjee from zhichu where ISNUMERIC(zje)!=0 ) as dd 上面可以查询出结果

ASP.NET中如何将decimal 类型的数据 存在 ORACLE数据库

问题描述 ASP.NET中如何将decimal类型的数据存在ORACLE数据库 解决方案 解决方案二:Oracle数据库中Number类型的参数的值可以用.NETdecimal或System.Data.OracleClient.OracleNumber类型指定:Integer类型的参数的值可以用.NETint或OracleNumber类型指定解决方案三:NUMBER12,7

asp.net C# 查询数据库中的日期字段类型及查询数据

asp教程.net C# 查询数据库教程中的日期字段类型及查询数据 private void button1_Click(object sender, EventArgs e)   {   SqlConnection conn = new SqlConnection(@"");   //创建数据库连接对象.数据库连接字符串   SqlCommand cmd = conn.CreateCommand();   cmd.CommandText = "select * from t

无数据库的详细域名查询程序PHP版(1)

无数据库的详细域名查询程序PHP版(1) [ 繁體中文 ] | 文章类别:PHP实例 | 文章等级: | 发表日期:2001-5-30  星期三 [ 计数器 | 精彩博客 | 魔法表情 | 博客申请 | 源码下载 | IP查询 | Html2Js ] 转自:动态网制作指南 www.knowsky.com文件一:index.php <?php echo "<!-- Powered by MWhois written by Matt Wilson <matt@mattsscript

select-sql server image类型在查询结果框中完整显示

问题描述 sql server image类型在查询结果框中完整显示 xmldata是一个image类型的,我用的是select * from t1 怎么它在查询出来的结果框里的东西显示不全,我这个是106552个字节,但是结果框里显示的东西我复制出来之后只有43679个字节.这是为什么??? 解决方案 sql server 2005 显示中文查询结果sql server 查询结果的转置 解决方案二: 这样做图片字符储存没有必要,如果太多这些,服务器会承受不了,建议在程序里面转成图片之后再储存图

.NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程

原文:.NET平台开源项目速览(7)关于NoSQL数据库LiteDB的分页查询解决过程 在文章:这些.NET开源项目你知道吗?让.NET开源来得更加猛烈些吧!(第二辑) 与 .NET平台开源项目速览(3)小巧轻量级NoSQL文件数据库LiteDB中,介绍了LiteDB的基本使用情况以及部分技术细节,我还没有在实际系统中大量使用,但文章发布后,有不少网友( loogn)反应在实际项目中使用过,效果还可以吧.同时也有人碰到了关于LiteDB关于分页的问题,还不止一个网友,很显然这个问题从我的思考上来

asp.net里利用ajax和jquery将前台的值,传给后台查询数据库,再将查询结果返到前台。

问题描述 asp.net里利用ajax和jquery将前台的值,传给后台查询数据库,再将查询结果返到前台. 例如:在前台获取了一个值 "D11" 如何将D11传给后台.ashx文件里通过语句select * from table where ID="D11"; 再将给过返回给前台. 这个语句怎么写啊. 怎样将D11传递到后台去啊! 解决方案 1.无参数的方法调用, 注意:1.方法一定要静态方法,而且要有[WebMethod]的声明 后台: using System.

对象-数据库时间类型字段在jsp页面中显示

问题描述 数据库时间类型字段在jsp页面中显示 我通过js向后台发送请求,查询数据库中的字段.其中有一个字段是date时间类型的, 查询结果在jsp页面中显示的不是时间而是Object. 解决方案 在JSP页面中显示动态时间jsp页面显示动态时间如何在JSP页面中显示当前时间 解决方案二: 前台现实的是object格式的吗? 你可以Tostring()啊 解决方案三: 格式化日期的值,或者直接Tostring 解决方案四: 吧他转为字符串在进行输出 解决方案五: 建议数据库里吧date类型转化成