-
使用hibernate的sum()查询时,新生成的sum()属性如何对应POJO类的属性?5
[size=medium]我用hibernate逆向工程生成了一个表stock对应POJO类。
表的字段有name(vchar),value(number),id(vchar),主键为id
对应POJO类的属性为name(String),value(double),id(String).
现在我需要做查询 select id,sum(value) from stock group by id
但是hibernate查询时一般都是from stock where ... 即查询的属性可以对应到POJO类的属性。但是sum(value)怎么对应到POJO类中?
我以前的方法是如下:
List<Stock> getStocks(String hql){
HibernateTemplate ht=this.getHibernateTemplate();
return ht.find(hql)
}
但是现在hql中sum(value)属性没有POJO的属性与之对应,求教求教啊
问题补充:那hql语句从哪里传入呢?kidding87 写道使用Criteria
网上找了个例子
List cats=session.createCriteria(Cat.class)
.setProjection(Projections.projectionList()
.add(Projections.rowCount())
.add(Projections.avg("weight"))
.add(Projections.max("weight"))
.add(Projections.min("weight"))
.add(Projections.groupProperty("color"))
).addOrder(Order.asc("color")).list();
问题补充:斐斐宝贝 写道select new (a.id,a.value,a.name,a.sum) from 实体类 a group by a.id
在实体类中加一个临时变量sum,get set 以后
然后构造方法中加进去
比如实体类为A
public class A
{
private int id;
private String name;
private int value;
private int sum=0;//临时变量
public A(){}
public A(int id,int value,String name,int sum){}
this.id=id;
this.name=name;
this.value=value;
sum+=this.value;
}
就是这么个形式,你再改改,也许就能用了。
这样或许可以,但是每次新增一个查询的属性都要在POJO类中添加对应的属性会不会很麻烦?有没有类似我直接写一个StockUtil的类,添加属性对应select后的属性,如id,sum(value)等,然后用hql查询返回一个StockUtil的List对象。
问题补充:那通过criteria方法可以返回一个List对象,假如我的数据库中ID字段是char(8)的话,在List对象中对应的id属性的值只能取到实际id的头一个字母。也就是把char(8)直接当成char型了。请问除了改数据库还有没别的办法?kidding87 写道hibernate有两种查询方式啊
hql和criteria
criteria是纯对象的查询
2011年12月20日 13:53
5个答案 按时间排序 按投票排序
-
criteria.setResultTransformer(ResultTransformer paramResultTransformer);
2011年12月20日 15:58
-
select new (a.id,a.value,a.name,a.sum) from 实体类 a group by a.id
在实体类中加一个临时变量sum,get set 以后
然后构造方法中加进去
比如实体类为A
public class A
{
private int id;
private String name;
private int value;
private int sum=0;//临时变量
public A(){}
public A(int id,int value,String name,int sum){}
this.id=id;
this.name=name;
this.value=value;
sum+=this.value;
}
就是这么个形式,你再改改,也许就能用了。2011年12月20日 14:19
-
使用Criteria
网上找了个例子
List cats=session.createCriteria(Cat.class)
.setProjection(Projections.projectionList()
.add(Projections.rowCount())
.add(Projections.avg("weight"))
.add(Projections.max("weight"))
.add(Projections.min("weight"))
.add(Projections.groupProperty("color"))
).addOrder(Order.asc("color")).list();2011年12月20日 14:08
相关推荐
本篇文章将详细讲解如何根据`hibernate.cfg.xml`文件生成与数据库表对应的POJO(Plain Old Java Object)类,以简化开发过程。 首先,我们需要理解`hibernate.cfg.xml`文件的内容。这个文件通常包含数据库连接信息...
此时,Eclipse将根据你选择的数据库表生成对应的POJO类,这些类将包含字段(属性)、getter和setter方法,以及如`@Entity`、`@Table`、`@Id`等必要的注解,用于标识其为数据库表的映射对象。 最后,你可以在你的...
在开发过程中,手动创建所有对应的Java POJO(Plain Old Java Object,简单Java对象)类可能会非常耗时,尤其是在面对大型数据库时。为此,Hibernate 提供了反向工程(Reverse Engineering)工具,可以自动生成基于...
4. **执行生成操作**:在IDE中使用Hibernate Tools的代码生成功能,选择对应的HBM文件,工具会根据文件中的映射信息自动生成对应的POJO类,包括属性、getter和setter方法,以及可能的构造函数。 5. **检查和修改**:...
在这个场景中,我们讨论的是如何使用MyEclipse工具来生成Hibernate的映射文件以及对应的POJO(Plain Old Java Object)类,这些类是数据库表的Java表示形式。 首先,映射文件是Hibernate的核心组成部分,它是XML...
通过上述步骤,我们可以方便快捷地使用MyEclipse和Hibernate工具自动生成与数据库表对应的POJO类,大大提高了开发效率。需要注意的是,在实际开发过程中,还需要结合具体的业务需求对生成的代码进行适当的调整和完善...
在Hibernate中,POJO类用于表示数据库中的实体,每个类对应一个表,类的属性对应表的字段。 2. **Hibernate 3.0简介**: Hibernate 3.0是Hibernate ORM框架的一个重要版本,它增强了性能,提供了更丰富的API,并...
- 表字段到POJO属性:数据库表的每一列映射为POJO类的一个私有成员变量,列的数据类型对应属性的Java类型。 - 主键处理:主键字段在POJO中通常会标记为@Id,以表明其特殊地位。 - 关联关系:如果有外键关联,POJO...
4. 在使用 MyEclipse 自动生成 Hibernate 映射文件和实体类时,需要创建数据库连接和相应的表,然后选择需要添加 Hibernate 映像文件的工程,最后进行反转工程操作。 使用 MyEclipse 自动生成 Hibernate 映射文件和...
生成的POJO类通常遵循一定的命名约定,例如,表名为`users`的对应Java类可能是`Users.java`,表中的字段`user_name`可能映射为`userName`属性。此外,生成器还可能提供注释,帮助开发者理解各个属性的含义。 对于...
1.1.1版本 简单数据库逆向工程 自动生成POJO类 JAVA WEB jsp
例如,使用Hibernate时,可以利用注解将POJO类与数据库表关联,然后使用SessionFactory和Session接口进行CRUD操作。 5. **效率提升** 自动化生成POJO类可以显著减少手动编写代码的工作量,降低错误率,提高开发...
在Java开发中,POJO类是无特殊约束的普通Java对象,它们在对象关系映射(ORM)框架如Hibernate、MyBatis等中广泛使用。 描述中提到“oracle数据库数据表生成java文件”,这意味着该生成器是专门针对Oracle数据库的...
### 使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件 #### 知识点解析 **一、Hibernate框架简介** Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。...
使用 MyEclipse 工具生成 POJO 类和映射文件 .hbm.xml MyEclipse 是一款功能强大且流行的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者快速开发应用程序。在本篇文章中,我们将学习如何使用 MyEclipse ...
MyBatis Generator会根据数据库表结构自动生成对应的POJO类,包含属性、getter和setter方法。 5. **mybatis-generator**:MyBatis Generator的主程序,它可以根据用户配置的XML配置文件,自动生成上述的Mapper接口...
对于使用Hibernate框架的开发者来说,MyEclipse提供了自动生成POJO(Plain Old Java Object)类和对应的hbm.xml映射文件的功能,这在处理大量的数据库操作时尤其方便。下面我们将详细探讨如何在MyEclipse中实现这一...
在MyEclipse中,可以使用Hibernate Reverse Engineering功能来生成Hibernate的POJO、DAO和hbm.xml文件。具体步骤如下: 1. window->open perspective->MyEclipse Database Exporer,进入数据库模式 2. 打开刚才配置...
Mybatis Pojo插件通过解析数据库表结构,能自动生成这些符合规范的POJO类,包括属性、getter和setter方法,以及对应的注解或XML映射文件,从而减少了手动编写这些重复代码的时间和错误。 要使用Mybatis Pojo插件,...