fdurmus77
fdurmus77

Reputation: 516

How to read Query Parameters key and value

javax.persistence.Query

Query query = ....
query.setParameter("PARAM_1","1")
.setParameter("PARAM_2","2")
.setParameter("PARAM_3","3")
...
...;

I want to get parameters and write Console. Like this;

System out ;

PARAM_1 - 1
PARAM_2 - 2
PARAM_3 - 3
...
...

Upvotes: 3

Views: 6653

Answers (6)

desoss
desoss

Reputation: 622

This worked for me:

((NativeQueryImpl) fQuery).getNamedParameterMap()

Upvotes: 0

Stephan
Stephan

Reputation: 43023

You can try this:

Query query = ...;
String[] keys = new String[] {"PARAM_1", "PARAM_2", "PARAM_3"};

for(String key : keys) {
   System.out.println(key + " - " + query.getParamValue(key));
}

Upvotes: 1

dtortola
dtortola

Reputation: 798

You just had to look at the javadoc, the method getParameters()

Query q = ...;
...
Set<Parameter<?>> parameters = q.getParameters();
for (Parameter<?> param : parameters){
    if (null == param.getName()){
        System.out.print(param.getPosition());
    } else {
        System.out.print(param.getName());
    }
    System.out.println(" - ");
    System.out.println(q.getParameterValue(param));
}

Upvotes: 2

Janny
Janny

Reputation: 691

getParameter() helps you to understand more. Please click here for more information.

Upvotes: 0

Pranalee
Pranalee

Reputation: 3409

check query interface. It has many methods like getParameter*(). See which one suits you.

Upvotes: 0

Amr
Amr

Reputation: 2460

java.util.Set<Parameter<?>> params = query.getParameters();
for (Parameter p : params) {
    String paramName = p.getName();
    System.out.print(paramName + " - ");
    System.out.println(query.getParameterValue(paramName));
}

Upvotes: 11

Related Questions