Getting Session Using JpaHelper.getEntityManager [message #547795] |
Mon, 19 July 2010 11:56  |
Eclipse User |
|
|
|
Hi,
I am using EclipseLink as my JPA provider and have a need to execute an Oracle stored function. I have written the following method in my GenericServiceBean class:
public String executeStoredFunctionWithNamedArguments(String functionName,
Map<String, String> namedArguments)
{
Session session = JpaHelper.getEntityManager(em).getSession();
StoredFunctionCall functionCall = new StoredFunctionCall();
functionCall.setProcedureName(functionName);
functionCall.setResult("RESULT", String.class);
ValueReadQuery query = new ValueReadQuery();
query.setCall(functionCall);
List<String> values = new ArrayList<String>();
for (String key : namedArguments.keySet())
{
query.addArgument(key);
values.add(namedArguments.get(key));
}
String status = (String)session.executeQuery(query, values);
return status;
}
When the code executes, I get a NPE on the session.executeQuery. I have confirmed that the em is not null (is being injected properly).
Can someone tell me what I'm doing wrong?
Thanks!
|
|
|
|
|
|
Re: Getting Session Using JpaHelper.getEntityManager [message #547860 is a reply to message #547849] |
Mon, 19 July 2010 16:50  |
Eclipse User |
|
|
|
I have figured out a way to make this work. For future reference here is my final method:
public String executeStoredFunctionWithNamedArguments(String functionName,
LinkedHashMap<String, String> namedArguments)
{
Session session = JpaHelper.getEntityManager(em).getServerSession();
StoredFunctionCall functionCall = new StoredFunctionCall();
functionCall.setProcedureName(functionName);
functionCall.setResult("RESULT", String.class);
for (String key : namedArguments.keySet())
{
functionCall.addNamedArgumentValue(key, namedArguments.get(key));
}
ValueReadQuery query = new ValueReadQuery();
query.setCall(functionCall);
String status = (String)session.executeQuery(query);
return status;
}
|
|
|
Powered by
FUDForum. Page generated in 0.04122 seconds