有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Hibernate多参数setString生成Java

我正在使用hibernate,并尝试在某些字段上执行类似操作

我拆分一个字符串,然后生成HQL,使用

table.entry LIKE :argsearch_0 OR table.entry LIKE :argsearch_0 OR 
table.entry LIKE :argsearch_1 OR table.entry LIKE :argsearch_1 

(0和1实际上是通过一个计数器递增的)

但我得到:

Not all named parameters have been set: [argsearch_0]

第一个问题:

  • 我是否可以使用2个命名参数,只执行1个setParameter(或setString):

    String nameParam = "argsearch_"+i;
    q.setParameter(nameParam, "%"+args[i]+"%");
    

第二个问题:

  • 为什么我的参数不起作用

共 (1) 个答案

  1. # 1 楼答案

      You can Try this  
    
    
    
        **Step 1 :** Add How many parameter you need just add in hashmap
                                        -
        
        HashMap param_List=new HashMap();
        param_List.put("contactNo",22);
    
        
        **Step 2 :** Just You pass your Query
                                        -
        
        Query query1 = session.createQuery("select * from emailTemplate  where c.contactNo =:contactNo");
    
    
      **Step 3 :** What ever Data type is no matters but get an output.
                                       -
    
        for(Object paramKey : param_List.keySet())
        {
        query1.setParameter(paramkey.toString(), param_List.get(paramKey);
        }
    
    
     **Step 4 :**
                                     -
        String finalResult=query1.getSingleResult().toString();