`
huiqinbo
  • 浏览: 352177 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

query.setParameter(i+2, entityids[i]) 后面参数为什么是entityids[i]呢

QQ 
阅读更多
public <T> void delete(Class<T> entityClass, Object[] entityids) {
if(entityids!=null && entityids.length>0){
StringBuffer jpql = new StringBuffer();
for(int i=0 ;i<entityids.length;i++){
jpql.append("?").append(i+2).append(",");
}
jpql.deleteCharAt(jpql.length()-1);
Query query = em.createQuery("update ProductType o set o.visible=?1 where o.id in("+ jpql.toString()+")")
.setParameter(1, false);
for(int i=0 ;i<entityids.length;i++){
query.setParameter(i+2, entityids[i]);//为什么后面参数是entityids呢?
}
query.executeUpdate();
}
}



钦波解决了:
第一个setParameter(1, false);是为o.visible=?1而设立的,
第二个query.setParameter(i+2, entityids[i]);是为where o.id in("+ jpql.toString()+")")括号里面的?2,?3,?4...而设立的,所以前面是i+2,后面就是根据ID获取具体数组元素了.
如果哪位不明白,钦波会尽力为你解答,QQ:444084929
分享到:
评论

相关推荐

    Hibernate SQLQuery 本地查询

    这里的SQLQuery对象可以绑定参数,如示例中的`:username`,然后通过`setParameter`方法设置实际值。它还支持返回结果集,可以将其转化为List、Map或其他类型的集合,以便与Java对象进行映射。 接下来,我们来看看...

    Hibernate SQLQuery执行原生SQL.docx

    设置查询参数可以通过setParameter方法完成,它接受两个参数:一个是参数的索引(从0开始),另一个是实际的值。例如: ```java query.setParameter(0, noteId); ``` 此外,SQLQuery还提供了多种方法如...

    hibernate通用查询

    query.setParameter(i + 1, params[i]); } } return query.list(); } finally { session.close(); } } // 排序查询 public List&lt;T&gt; findByOrder(String hql, String orderField, boolean asc, Object......

    Java调用动态库最简便方法.pdf

    - **设置参数类型及值**:使用`setParameter`方法设置每个参数的类型和值。 - **调用方法**:通过`invoke`方法调用指定的动态库方法。 - **获取结果**:调用完成后,使用`getRetVal`方法获取返回值。 ##### 特殊...

    微支付 JAVA集合版

    wxPayHelper.SetAppKey("2Wozy2aksie1puXUBpWD8oZxiD1DfQuEaiC7KcRATv1Ino3mdopKaPGQQ7TtkNySuAmCaDCrw4xhPY5qKTBl7Fzm0RgR3c0WaVYIXZARsxzHV2x7iwPPzOz94dnwPWSn"); wxPayHelper.SetPartnerKey("8934e7d15453...

    【ASP.NET编程知识】ASP.NET MVC 开发微信支付H5的实现示例(外置浏览器支付).docx

    2. 代码逻辑:用户在商户侧完成下单,使用微信支付进行支付。由商户后台向微信支付发起下单请求(调用统一下单接口),交易类型 trade_type=MWEB。 3. 统一下单接口返回支付相关参数给商户后台,如支付跳转 url...

    jpa查询详解

    在上面的代码中,我们使用 `createQuery` 方法创建了一个 Query 对象,然后使用 `setParameter` 方法设置参数,最后使用 `getSingleResult` 方法检索结果。 Query 方法详解 Query 对象提供了一些方法来检索和操作...

    Hibernate HQL命名参数和Query接口的分页

    本篇将详细讲解HQL中的命名参数以及如何通过Query接口实现分页查询,这对于开发大型数据应用来说是至关重要的。 首先,我们来看HQL中的命名参数。在编写HQL查询语句时,我们可以使用`:paramName`的方式来定义参数,...

    HQL.pdf数据查询语句

    Hibernate Query Language(HQL)是一种面向对象的查询语言,它允许开发者通过对象模型而非数据库模式来表达数据库查询。HQL与SQL语法类似,但它理解Java实体和属性,因此HQL查询的对象是Java类而不是数据库中的表。...

    Hibernate实现记录的增、删、改和查功能

    query.setParameter(2, new Long(1)); List list = query.list(); // 使用 ":paramName" String hql = "from User as user where user.loginName=:loginName and user.orgId=:orgId "; Query query = session....

    hql语句 使用大全

    query.setParameter("name", "张三"); query.setInteger("id", 100); List&lt;User4&gt; users = query.list(); ``` #### 8. 分页查询 分页查询可以帮助优化大数据量下的查询性能: ```java String hql = "from ...

    hibernate的HQL的模糊查询

    在Java的持久化框架Hibernate中,HQL(Hibernate Query Language)是专为ORM(对象关系映射)设计的一种SQL方言,用于对数据库进行操作。HQL模糊查询是开发者在进行数据检索时常用的一种功能,它允许我们根据部分...

    \Hibernate_query条件查询

    query.setParameter("username", "testUser"); // Criteria Criteria criteria = session.createCriteria(User.class); criteria.add(Restrictions.eq("username", "testUser")); ``` 5. **分页查询** ...

    JPA JPQL常用

    当需要传递`java.util.Date`或`java.util.Calendar`类型参数时,需要使用特定的`setParameter()`方法,并指定`javax.persistence.TemporalType`,以指示如何将这些参数转换为本地SQL日期、时间和时间戳类型。...

    Hibernate框架]Hql语句in中带参数的写法

    private Query setParameter(Query query, Map, Object&gt; map) { if (map != null) { Set&lt;String&gt; keySet = map.keySet(); for (String string : keySet) { Object obj = map.get(string); if (obj instanceof ...

    JAVA如何调用dll:用JNI调用C或C++动态联接库

    在示例中,我们有一个名为`TestAppSvr.dll`的DLL,它包含一个名为`TestConnect`的方法,该方法接受IP地址、端口号和一个布尔值作为参数,并返回一个整型结果表示连接状态。 为了在Java中调用这个DLL,我们需要以下...

    java-Hibernate 检索

    4. 为 Query 对象设置条件参数 5. 执行查询 list() ---- 返回一个集合列表 、 uniqueResult();--- 返回一个查询结果 Query 接口支持方法链编程风格,将上面所有步骤写入一句程序代码中。 四、QBC 检索 QBC 是一种...

    Hibernate 在查询操作中要使用分页+命名参数+排序技术

    在IT行业中,数据库查询是日常开发中的重要环节,特别是在大型应用中,为了提高用户体验和系统性能,分页、命名参数和排序技术的应用至关重要。本文将深入探讨如何在使用Hibernate框架时,有效地结合这些技术进行...

    很全面的Hibernate查询介绍

    query.setParameter("maxAge", 50); List&lt;User&gt; list = query.list(); for (User user : list) { System.out.println("UserID: " + user.getId() + "\tUserName: " + user.getName()); } ``` 总之,Hibernate 的 ...

    jpql查询[定义].pdf

    这里,`:Id`是一个命名参数,你可以通过`setParameter`方法为其赋值。同样,也可以使用位置参数,如`?1`,但每个查询中只能使用一种参数定义方式。 处理日期和日历类型参数时,由于它们在数据库中可能有不同的表示...

Global site tag (gtag.js) - Google Analytics