SSH:如何让Hibernate的HQL只返回部分属性的对象(POJO)集合?

1、SSH的版本

 
 
  • Struts2版本:2.3.16.1 
  • Spring版本:3.2.5.RELEASE
  • Hibernate版本:4.2.0.Final

2、为POJO新增带参数的构造函数(必须同时添加一个无参的构造函数)

@Entity
@Table(name = "user_order", catalog = "hibernate")
public class UserOrder {
    private Integer id;
    private Integer userId;
    private String orderDesc;
    private User user;

    /**
     * 默认构造函数
     */
    public UserOrder() {
    }

    /**
     * 自定义构造函数以便实现只包含部分属性的List
     * @param id
     * @param userId
     * @param orderDesc
     */
    public UserOrder(Integer id, Integer userId, String orderDesc) {
        this.id = id;
        this.userId = userId;
        this.orderDesc = orderDesc;
    }
}

3、通过HQL来new一个只有部分属性的对象并通过List集合返回

    @Override
    public List<UserOrder> getUserOrdersByPage(int userId, int pageIndex, int pageSize) {
        Query query = getCurrentSession().createQuery("select new UserOrder(id,userId,orderDesc) from UserOrder as uo where uo.userId=?");
        return query.setInteger(0, userId).setFirstResult((pageIndex - 1) * pageSize).setMaxResults(pageSize).list();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值