Hibernate Column name Parameter Binding

hibernate

Solution

You can't bind a column name as a parameter. Only a column value. This name has to be known when the execution plan is computed, before binding parameter values and executing the query. If you really want to have such a dynamic query, use the Criteria API, or some other way of dynamically creating a query.

Problem

I am binding Named Parameters in a HQL statement, but it just doesn't get filled. ``` //colname = "AdminsInfo.name"; assume it is from method's input //colval = input.getName().toString(); // assume it is from method's input String query = "from AdminsInfo where :coln = :colv"; Query q = session.createQuery(query); q.setParameter("coln",colname); q.setParameter("colv",colval); System.out.println(q.toString()); ``` it outputs something like this which means parameters (coln, colv) are not set and returns 0 records. ``` QueryImpl(from AdminsInfo where :coln = :colv) Hibernate: select adminsinfo0_.Row as Row1_0_, adminsinfo0_.ID as ID2_0_,adminsinfo0_.Name as Name3_0_, ... where ?=? ``` Any help on how to bind column names in HQL statements are appreciated. Thanks. Mahdi.

Original source