perfsonar-dev - [pS-dev] [GEANT/SA2/ps-java-services] r5829 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType/storage/sql/query
Subject: perfsonar development work
List archive
[pS-dev] [GEANT/SA2/ps-java-services] r5829 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType/storage/sql/query
Chronological Thread
- From:
- To:
- Subject: [pS-dev] [GEANT/SA2/ps-java-services] r5829 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType/storage/sql/query
- Date: Wed, 31 Aug 2011 15:57:53 +0100
Author: psnc.pikusa
Date: 2011-08-31 15:57:52 +0100 (Wed, 31 Aug 2011)
New Revision: 5829
Modified:
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/sql/query/QueryGenerator.java
Log:
Refactoring the code. Former getQuery changed to getProperties. New getQuery
returns javax.persistence Query object including SQL statement and all needed
parameters for it. It can be further used to get the results. Thanks to that
change it can be used by MetadataKeyRequest and SetupDataKeyRequest
Modified:
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/sql/query/QueryGenerator.java
===================================================================
---
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/sql/query/QueryGenerator.java
2011-08-31 14:56:07 UTC (rev 5828)
+++
trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsonar/service/measurementArchive/rrdType/storage/sql/query/QueryGenerator.java
2011-08-31 14:57:52 UTC (rev 5829)
@@ -3,6 +3,9 @@
import java.util.HashMap;
import java.util.Map;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
import org.perfsonar.base2.xml.nmwg.EventType;
import org.apache.log4j.Logger;
import org.perfsonar.base2.service.exceptions.PerfSONARException;
@@ -22,7 +25,30 @@
protected static final Logger logger =
Logger.getLogger(QueryGeneratorManager.class.getName());
- public Map<String, String> getQuery(Metadata metadata, String
tableName) throws PerfSONARException{
+ public Query getQuery(EntityManager em, Metadata metadata, String
tableName, Object tableClass) throws PerfSONARException{
+
+ Map<String, String>parametersMap =
getParametersMap(metadata, tableName);
+ logger.info("QUERY: " + parametersMap.get("query"));
+
+ Query query =
em.createNativeQuery(parametersMap.get("query"), tableClass.getClass());
+ for (String parameter : parametersMap.keySet()) {
+ if(!parameter.equals("query"))
+ query.setParameter(parameter,
parametersMap.get(parameter));
+ }
+
+ return query;
+ }
+
+
+ /**
+ * Method gets map with all the parameters needed to create query
object of Query class. It also includes a native sql query under
+ * the "query" key.
+ * @param metadata
+ * @param tableName
+ * @return
+ * @throws PerfSONARException
+ */
+ public Map<String, String> getParametersMap(Metadata metadata, String
tableName) throws PerfSONARException{
Map<String, String> resultMap = new HashMap<String, String>();
@@ -205,7 +231,6 @@
* @return keyword value string
*/
protected String getKeyword(Parameters parameters){
-
if (parameters != null){
logger.info("parameters not null");
if(parameters.getFirstParameter("keyword") != null){
- [pS-dev] [GEANT/SA2/ps-java-services] r5829 - trunk/perfsonar-java-rrd-sql-ma/src/main/java/org/perfsona r/service/measurementArchive/rrdType/storage/sql/query, svn-noreply, 08/31/2011
Archive powered by MHonArc 2.6.16.