0 0

使用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个答案 按时间排序 按投票排序

0 0

采纳的答案

hibernate有两种查询方式啊
hql和criteria
criteria是纯对象的查询

2011年12月20日 14:53
0 0

你看看这个行不行,我也不清楚为什么你会是char类型

2011年12月20日 16:01
0 0

criteria.setResultTransformer(ResultTransformer paramResultTransformer);

2011年12月20日 15:58
0 0

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
0 0

使用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数据库表的工具类

    本篇文章将详细讲解如何根据`hibernate.cfg.xml`文件生成与数据库表对应的POJO(Plain Old Java Object)类,以简化开发过程。 首先,我们需要理解`hibernate.cfg.xml`文件的内容。这个文件通常包含数据库连接信息...

    eclipse 配置 hibernate tools 反向生成 pojo类 注解

    此时,Eclipse将根据你选择的数据库表生成对应的POJO类,这些类将包含字段(属性)、getter和setter方法,以及如`@Entity`、`@Table`、`@Id`等必要的注解,用于标识其为数据库表的映射对象。 最后,你可以在你的...

    hibernate自动生成Pojo

    在开发过程中,手动创建所有对应的Java POJO(Plain Old Java Object,简单Java对象)类可能会非常耗时,尤其是在面对大型数据库时。为此,Hibernate 提供了反向工程(Reverse Engineering)工具,可以自动生成基于...

    hibernate tools 生成pojo

    4. **执行生成操作**:在IDE中使用Hibernate Tools的代码生成功能,选择对应的HBM文件,工具会根据文件中的映射信息自动生成对应的POJO类,包括属性、getter和setter方法,以及可能的构造函数。 5. **检查和修改**:...

    hibernate生成的订单信息映射文件以及pojo类

    在这个场景中,我们讨论的是如何使用MyEclipse工具来生成Hibernate的映射文件以及对应的POJO(Plain Old Java Object)类,这些类是数据库表的Java表示形式。 首先,映射文件是Hibernate的核心组成部分,它是XML...

    hibernate生成pojo

    通过上述步骤,我们可以方便快捷地使用MyEclipse和Hibernate工具自动生成与数据库表对应的POJO类,大大提高了开发效率。需要注意的是,在实际开发过程中,还需要结合具体的业务需求对生成的代码进行适当的调整和完善...

    hibernate3.0 和数据库生成pojo类的工程方法

    在Hibernate中,POJO类用于表示数据库中的实体,每个类对应一个表,类的属性对应表的字段。 2. **Hibernate 3.0简介**: Hibernate 3.0是Hibernate ORM框架的一个重要版本,它增强了性能,提供了更丰富的API,并...

    数据表生成pojo

    - 表字段到POJO属性:数据库表的每一列映射为POJO类的一个私有成员变量,列的数据类型对应属性的Java类型。 - 主键处理:主键字段在POJO中通常会标记为@Id,以表明其特殊地位。 - 关联关系:如果有外键关联,POJO...

    自动生成hibernate映射文件和实体类

    4. 在使用 MyEclipse 自动生成 Hibernate 映射文件和实体类时,需要创建数据库连接和相应的表,然后选择需要添加 Hibernate 映像文件的工程,最后进行反转工程操作。 使用 MyEclipse 自动生成 Hibernate 映射文件和...

    实体类POJO生成器

    生成的POJO类通常遵循一定的命名约定,例如,表名为`users`的对应Java类可能是`Users.java`,表中的字段`user_name`可能映射为`userName`属性。此外,生成器还可能提供注释,帮助开发者理解各个属性的含义。 对于...

    简单数据库逆向工程 自动生成POJO类

    1.1.1版本 简单数据库逆向工程 自动生成POJO类 JAVA WEB jsp

    DataBaseToJava:该工具将从数据库中生成Pojo类。您需要提供的只是数据库连接属性。

    例如,使用Hibernate时,可以利用注解将POJO类与数据库表关联,然后使用SessionFactory和Session接口进行CRUD操作。 5. **效率提升** 自动化生成POJO类可以显著减少手动编写代码的工作量,降低错误率,提高开发...

    pojo生成器

    在Java开发中,POJO类是无特殊约束的普通Java对象,它们在对象关系映射(ORM)框架如Hibernate、MyBatis等中广泛使用。 描述中提到“oracle数据库数据表生成java文件”,这意味着该生成器是专门针对Oracle数据库的...

    使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件

    ### 使用PD(PowerDesigner)自动生成Hibernate的POJO文件及xml配置文件 #### 知识点解析 **一、Hibernate框架简介** Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。...

    使用MyEclipse工具生成POJO类和映射文件.hbm.xml

    使用 MyEclipse 工具生成 POJO 类和映射文件 .hbm.xml MyEclipse 是一款功能强大且流行的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者快速开发应用程序。在本篇文章中,我们将学习如何使用 MyEclipse ...

    mybati自动生成mapper,dao,pojo

    MyBatis Generator会根据数据库表结构自动生成对应的POJO类,包含属性、getter和setter方法。 5. **mybatis-generator**:MyBatis Generator的主程序,它可以根据用户配置的XML配置文件,自动生成上述的Mapper接口...

    MyEclipe自动生成Pojo、DAO的方式

    对于使用Hibernate框架的开发者来说,MyEclipse提供了自动生成POJO(Plain Old Java Object)类和对应的hbm.xml映射文件的功能,这在处理大量的数据库操作时尤其方便。下面我们将详细探讨如何在MyEclipse中实现这一...

    myeclipse中自动生成hibernate的POJO、DAO和hbm.xml文件

    在MyEclipse中,可以使用Hibernate Reverse Engineering功能来生成Hibernate的POJO、DAO和hbm.xml文件。具体步骤如下: 1. window-&gt;open perspective-&gt;MyEclipse Database Exporer,进入数据库模式 2. 打开刚才配置...

    Mybatis生成pojo插件

    Mybatis Pojo插件通过解析数据库表结构,能自动生成这些符合规范的POJO类,包括属性、getter和setter方法,以及对应的注解或XML映射文件,从而减少了手动编写这些重复代码的时间和错误。 要使用Mybatis Pojo插件,...

Global site tag (gtag.js) - Google Analytics