使用Hibernate获取最大值(max)的三种方法
获取最大值的三种方法:
1. 使用 hsql
Integer c = (Integer)dbt.getSession().
createQuery("select max(a.ArticleId) from Article a " ).uniqueResult();
System.out.println(c);
注意:要加上别名“a”, a.ArticleId注意大小写! 否则会出现"无法解释的属性"错误!
2. 使用native sql
sql = "select max(articleid) maxid from ljarticle";
maxId = (Integer)(session.createSQLQuery(sql).addScalar("maxId", Hibernate.INTEGER) ).uniqueResult();
注意:要加上“maxid”标量
3. 使用criteria
Integer c = (Integer)dbt.getSession().createCriteria(Article.class)
.setProjection( Projections.projectionList().add(Projections.max("ArticleId " ) ) )
.uniqueResult() ;
同样要注意ArticleId是区分大小写的!
分享到:
相关推荐
这个查询返回了 cats 表中 weight 列的最大值。 五、使用结果集映射 我们可以在 hbm 文件中描述结果集映射信息,然后在查询中使用,例如: ```java List cats = sess.createSQLQuery("select {cat.*}, {kitten.*} ...
4. `@Length`:限制字符串长度,可以指定最小值和最大值。 5. `@Min` 和 `@Max`:用于数值类型,限制其范围。 6. `@Pattern`:使用正则表达式进行复杂格式的验证,如邮箱、电话号码等。 7. `@Size`:用于数组、集合...
本文将深入探讨Hibernate校验的原理、使用方法及其在实际开发中的应用。 一、Hibernate校验介绍 Hibernate校验,是Hibernate框架的一个扩展,它允许开发者在数据持久化之前对对象进行验证,确保数据的正确性和完整...
在内部,Hibernate 会调用 `org.hibernate.id.IncrementGenerator` 类中的 `generate()` 方法来获取当前主键的最大值,通常是通过执行 `SELECT MAX(idColumnName) FROM tableName` 这样的 SQL 语句来完成的。...
配置参数如`table`和`column`用于指定存储高位值的表和列,`max_lo`设定低位的最大值。 4. **seqhilo**: seqhilo策略类似于hilo,也是基于hi/lo算法,但它使用数据库序列而不是单独的表来获取高位值。这使得它更...
- **描述**:非零值,允许 Hibernate 使用 JDBC2 的批量更新。 - **取值**:建议取值 5 至 30 之间的值。 - **示例**:`hibernate.jdbc.batch_size=10` ##### 3. JDBC 批量版本化数据 (Batch Versioned Data) - **...
因此,对于开发环境以外的场景,使用第三方连接池是更优的选择。 再者,Hibernate2和Hibernate3的配置文件命名空间有所改变。例如,配置C3P0连接池时,Hibernate2需要指定`provider_class`为`...
其中,`hibernate.connection.provider_class`是配置使用C3P0连接池的关键,通过将其值设置为`org.hibernate.connection.C3P0ConnectionProvider`,Hibernate将自动使用C3P0管理数据库连接。 `hibernate.c3p0.max_...
seqhilo与hilo类似,也是基于Hi/Lo算法,但使用数据库序列来获取Hi值,适用于支持序列的数据库如Oracle。它的优势在于可以更好地处理多进程并发,但不适用于所有数据库。 5. **identity**策略: 这种策略依赖于...
下面将详细介绍 Hibernate 配置参数的用途和使用方法。 1. hibernate.dialect hibernate.dialect 是一个 Hibernate Dialect 类名,允许 Hibernate 针对特定的关系数据库生成优化的 SQL。其取值为 full.classname....
- **最大值(Max)**: ```java Criteria criteria = session.createCriteria(User.class); criteria.setProjection(Projections.max("age")); // 获取年龄的最大值 List<Integer> maxAge = criteria.list(); `...
当使用连接池如C3P0时,还需要额外的配置,如`c3p0.min_size`(最小连接数)、`c3p0.max_size`(最大连接数)、`c3p0.timeout`(超时时间)和`c3p0.max_statements`(最大预编译SQL语句数)。 3. **数据源属性**:`...
本文详细介绍了Hibernate框架中的核心配置文件`hibernate.cfg.xml`及其配置项、映射文件`xxx.hbm.xml`,以及核心API如Configuration和SessionFactory的使用方法,并对C3P0连接池进行了简要说明。通过这些内容的学习...
1. **Hibernate的数学函数**:如`max()`, `min()`, `sum()`, `avg()`和`count()`,它们用于对数据进行聚合操作,例如找出最大值、最小值、总和或平均值。 2. **字符串函数**:如`concat()`, `lower()`, `upper()`和...
- `@Min` 和 `@Max`:限制数字类型的最小值和最大值。 - `@Pattern`:用于正则表达式匹配。 - `@Email`:验证电子邮件格式。 - `@Future` 和 `@Past`:验证日期是否在当前时间之前或之后。 3. **自定义验证注解...
6. **`hibernate.c3p0.min_size` 和 `hibernate.c3p0.max_size`**: 分别定义了C3P0连接池的最小和最大连接数。例如: ```properties hibernate.c3p0.min_size=5 hibernate.c3p0.max_size=20 ``` 这两个配置项...
`increment`策略允许Hibernate从数据库中获取当前最大主键值,并在此基础上每次增加1来生成新的主键值。该策略在内存中完成,不依赖底层数据库。 **配置示例:** ```xml ``` **特点:** - 跨数据库使用。 - 不...
**描述**:由 Hibernate 负责管理主键生成,它会从数据库中取出当前最大值,每次保存新记录时自动递增 1。这种策略不依赖于底层数据库,因此具有良好的跨数据库兼容性。 **配置示例**: ```xml ``` **特点**...
例如,`@NotNull`用于检查字段是否为null,`@NotEmpty`用于检查字符串、集合或数组是否为空,`@Size`用于限制字段的长度,`@Min`和`@Max`则用于限制数值类型的最小值和最大值。此外,还有`@Email`用于验证电子邮件...
你需要预先创建一个名为 `high_val` 的表,以及一个 `nextval` 列,还需要指定最大低位值(max_lo)。 ```xml <param name="table">high_val <param name="column">nextval <param name="max_lo">5 ``` 5...