hibernate 模糊查询及not in子查询

本文介绍了一段使用HQL进行复杂查询并将其结果转换为特定Java对象的过程。该示例展示了如何通过设置参数和利用Hibernate框架提供的方法来实现产品信息的精确筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下

Query query1=this.getSession().createSQLQuery(" select p.smallClassId as smallClassId,p.id as id,p.name as name,p.thumbNail as thumbNail,p.marketPrice as marketPrice,p.memberPrice as memberPrice from product p  where  p.name like ? and p.smallClassId= ? and p.valid=true  and p.id not in (select sp.productId from  special_product  sp where  sp.specialId =? and sp.valid=true)")
    .addScalar("id",StandardBasicTypes.LONG)
      .addScalar("thumbNail")
      .addScalar("marketPrice")
      .addScalar("memberPrice")  
            .addScalar("name")
            .addScalar("smallClassId",StandardBasicTypes.LONG)
            .setResultTransformer(Transformers.aliasToBean(SpecialVo.class)); 
  query1.setParameter(0, "%"+name+"%");
  query1.setParameter(1, smallClassId);
  query1.setParameter(2, id);
  List<SpecialVo> specialVos1=query1.list();
  
  for (SpecialVo s:specialVos1){
     s.setIsSpecial(false);
     s.setQuantity(0);
   }
  specialVos.addAll(specialVos1);


本文出自 “点滴积累” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1678159

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值