当前使用的Hibernate版本是3.2.6,数据库是Oracle11g,当使用 HibernateTemplate 的execute方法执行sql语句(不是 hql 语句)查询的时候,使用count聚合函数,返回结果是 BigDecimal 类型,不是Integer也不是Long,需强转成 BigDecimal 类型,然后调用其对象的 intValue 或 longValue 方法就可以了。
public BigDecimal getPageNumberId(){
StringBuffer strHql = new StringBuffer("select count(*) from page_model t2 where t2.id in(select max(t.id) from page_model t group by t.pagenumber_id)");
SQLQuery sql = getSession().createSQLQuery(strHql.toString());
return (BigDecimal)sql.uniqueResult();
}
--------------------------------------------------------------------------------------------------------------
BigDecimal id = pageModelDao.getPageNumberId();
System.out.println(id.intValue());
-----------------------------------------------------------------------------------------
与上不同的是,当调用 HibernateTemplate 的 find 方法执行 hql 时,如果hql中有 count 函数,返回的结果是 Long 类型。
注:使用Criteria的count查询时返回的是Integer类型。
- public int getAlarmCountByFilter(final AlarmFilterBean filter,final int alarmCatelog) {
- return getHibernateTemplate().execute(new HibernateCallback<Integer>() {
- @Override
- public Integer doInHibernate(Session session) throws HibernateException, SQLException {
- Criteria c = session.createCriteria(ActiveAlarmBean.class);
- c.setProjection(Projections.rowCount());
- addFilterRestrictions(c,filter,alarmCatelog);
- return (Integer)c.uniqueResult();
- }
- });
- }
分享到:
相关推荐
Hibernate使用自己的数据类型映射机制,将Java对象转化为SQL语句,以操作数据库。而SQL(结构化查询语言)是用于管理关系数据库的标准语言,它有自己的数据类型系统,如INT、VARCHAR、DATE等。 当我们在使用...
- **Oracle数据库**:`COUNT(*)`的结果可以存储在`BigDecimal`类型中。这意味着在Oracle中,`COUNT(*)`可以兼容更宽泛的数据类型范围。 - **达梦数据库**:`COUNT(*)`的结果类型为`Long`。因此,在处理`COUNT(*)`...
此方法会返回 BigDecimal 的整数值,前提是该值在 Integer 的取值范围内,即 `-2^31` 到 `2^31 - 1`。例如: ```java BigDecimal bigDecimalValue = new BigDecimal("123.45"); int intValue = bigDecimalValue....
BigDecimal 类是 Java 中的一种数值类型,主要用于处理超过 16 位有效数字的数值运算。该类提供了多种构造器和方法,用于创建和操作 BigDecimal 对象。 构造器 BigDecimal 类提供了四种构造器,用于创建不同的 ...
string转bigdecimal类型
第二个方法add(String,String)是将两个字符串类型的数相加,然后返回BigDecimal类型的结果。第三个方法add(String,String,int)是将两个字符串类型的数相加,然后返回字符串类型的结果,并且可以指定保留的小数位数。...
7. **BigDecimal**: 映射到`java.math.BigDecimal`,在SQL中对应`NUMERIC`类型,如`NUMERIC(8,2)`表示整数位为6,小数位为2。 #### 字符串和布尔类型映射 1. **Character**: 映射到`java.lang.Character`,在SQL中...
SQL Server 数据库类型对应 Java 中的数据类型 SQL Server 是一个关系数据库管理系统,Java 是一个广泛使用的编程语言。在 Java 中,对数据库的操作需要通过 JDBC(Java Database Connectivity)来实现,而在 JDBC ...
string转bigdecimal类型完成了string转bigdecimal类型的操作一行代码搞定
构造函数:解决了上面这个问题好像万事大吉了,结果,我在做测试的时候,又发现了一个莫名其妙的问题,代码如下: BigDecimal bd=supplierRecentProductDao.findHistoryReturnRate("001", "001"); assertEquals(bd....
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,而无需过多关注SQL语句的编写。本篇将主要围绕Hibernate在与各种数据库字段类型对应的Java类型进行...
Hibernate 提供了多种数据类型,用于匹配不同数据库系统支持的标准 SQL 数据类型。这些数据类型包括: - **数值类型**:例如,`byte` 和 `java.lang.Byte` 映射到 `TINYINT`,`short` 和 `java.lang.Short` 映射到 ...
下面我们将详细探讨Java、Hibernate以及SQL之间的数据类型对应关系。 1. **基本数值类型**: - `byte` 和 `java.lang.Byte` 对应于 SQL 的 `TINYINT` - `short` 和 `java.lang.Short` 对应于 SQL 的 `SMALLINT` ...
在Java编程语言中,BigDecimal是一种用于处理高精度数值的数据类型,尤其适用于金融计算等领域,因为它可以提供不受限的小数位数精度以及精确的数学运算能力。然而,在某些情况下,我们可能需要将BigDecimal类型的值...
对于更精确的数值处理,`big_decimal`映射为`java.math.BigDecimal`,在数据库中通常表现为`NUMERIC`类型。 字符串类型的映射包括`character`和`string`。`character`对应单个字符,映射为`CHAR(1)`,而`string`...
- **类型检查**:由于JavaScript的动态类型特性,确保在进行`BigDecimal`操作前,所有涉及的数值都被转换为`BigDecimal`对象。 - **性能考虑**:虽然`BigDecimal`提供了精确计算,但它的运算速度相比JavaScript原生...
在实际项目中,如使用MyBatis作为持久层框架,可能会在Mapper文件中编写SQL查询条件,涉及到BigDecimal类型的字段。在这种情况下,需要注意避免直接使用等于操作符(=)进行比较,因为数据库可能不会像BigDecimal的...
1. **构造方法**: 在构造 `BigDecimal` 对象时,推荐使用 `Double.toString()` 来转换 `double` 类型的值,因为直接传递 `double` 值可能会导致意外的结果。 2. **舍入模式**: `BigDecimal.ROUND_HALF_UP` 表示四...
alert(new BigDecimal("10").add(new BigDecimal("3E+10"))); //- alert(new BigDecimal("10").subtract(new BigDecimal("3E+10"))); //* alert(new BigDecimal("10").multiply(new BigDecimal("3E+10"))); // / ...
### BigDecimal的计算 #### 概述 在Java中,`BigDecimal` 类提供了对超过16位有效数字的十进制数进行精确算术运算的能力。它适用于金融计算、科学计算等场景,在这些场景中,使用浮点数(如 `float` 和 `double`)...