mysql数据库其中某字段类型为decimal,使用hibernate查询数据,条件就是这个字段,使用sql语句在数据库中可以查询到数据,但是使用hibernate却返回一个空值,结果发现hibernate的参数类型声明错误。
问题部分代码:
String hql = "select *from tables where loc.level = :level and loc.latitudes = :latitude and loc.longitude = :longitude order by ti.amItem.goid";
session = this.getHibernateTemplate().getSessionFactory().getCurrentSession();
query = session.createQuery(hql);
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
list = query.setString("latitude", location[0])
.setString("longitude", location[1])
.setInteger("level", level)
.list();
修改后代码:
BigDecimal d0 = new BigDecimal(location[0]);
BigDecimal d1 = new BigDecimal(location[1]);
list = query.setBigDecimal("latitude", d0)
.setBigDecimal("longitude", d1)
.setInteger("level", level)
.list();
java.lang.UnsupportedClassVersionError问题的解决方法 :
异常原因:
是因为使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。
因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。
解决方法(Eclipse galileo-SR2 为例):
右击项目-->properties-->Java Compiler,设置合适的版本!!
window-->preperences-->server-->runtime environments,web容器使用的jre与Java Compiler相同
http://blog.csdn.net/lwz52169/archive/2010/03/11/5372091.aspx