List of usage examples for org.hibernate.mapping Column getName
public String getName()
From source file:com.github.shyiko.rook.target.hibernate4.fulltextindex.SynchronizationContext.java
License:Apache License
@SuppressWarnings("unchecked") private PrimaryKey resolveForeignPrimaryKey(org.hibernate.mapping.Collection collection, Map<String, IndexingDirective> directivesByEntityNameMap) { Table collectionTable = collection.getCollectionTable(); ToOne element = (ToOne) collection.getElement(); IndexingDirective indexingDirective = directivesByEntityNameMap.get(element.getReferencedEntityName()); if (indexingDirective == null) { return null; }//from www. j av a 2 s .c o m Collection<String> targetPrimaryKeyColumnNames = new HashSet<String>(); for (Iterator<Column> columnIterator = element.getColumnIterator(); columnIterator.hasNext();) { Column column = columnIterator.next(); targetPrimaryKeyColumnNames.add(column.getName()); } Map<String, Integer> columnIndexByNameMap = new HashMap<String, Integer>(); int index = 0; for (Iterator<Column> columnIterator = collectionTable.getColumnIterator(); columnIterator.hasNext();) { Column column = columnIterator.next(); if (targetPrimaryKeyColumnNames.contains(column.getName())) { columnIndexByNameMap.put(column.getName(), index); } index++; } return new PrimaryKey(indexingDirective.getPrimaryKey(), columnIndexByNameMap); }
From source file:com.krawler.esp.hibernate.impl.HibernateUtil.java
License:Open Source License
public static String getPrimaryColName(Table table) throws ServiceException { String colName = ""; try {// w w w.j a v a 2 s . com PrimaryKey pk = table.getPrimaryKey(); List lst = pk.getColumns(); Column col = (Column) lst.get(0); colName = col.getName(); } catch (Exception e) { throw ServiceException.FAILURE("HibernateUtil.getPrimaryColName", e); } return colName; }
From source file:com.krawler.esp.hibernate.impl.reportMethods.java
License:Open Source License
public String loadData(HttpServletRequest request) throws ServiceException { String result = "{data:[],count : 0}"; try {// www. j a v a 2 s .c om String reportid = request.getParameter("reportid"); String query = null; Configuration cfg = getConfig(); java.util.Iterator itr = cfg.getTableMappings(); HashMap<String, Table> tableObj = new HashMap<String, Table>(); while (itr.hasNext()) { Table table = (Table) itr.next(); tableObj.put(PropsValues.PACKAGE_PATH + "." + table.getName(), table); } //Fetch all reference tables in report mb_reportlist report = (mb_reportlist) get(mb_reportlist.class, reportid); query = "Select distinct mb_gridconfig.reftable as tablename from " + PropsValues.PACKAGE_PATH + ".mb_gridconfig as mb_gridconfig where mb_gridconfig.reportid = ? and mb_gridconfig.countflag = ? "; List ls = find(query, new Object[] { report, false }); java.util.Iterator ite = ls.iterator(); String str = ""; ArrayList<String> refTableList1 = new ArrayList<String>(); HashMap<String, String> shortTableNames = new HashMap<String, String>(); while (ite.hasNext()) { String reftablename = (String) ite.next(); if (!StringUtil.isNullOrEmpty(reftablename)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reftablename); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reftablename, reftablename); } } //If new table created not present in arraylist then it is added forcefully String reportTName = reportDao.getReportTableName(reportid); if (!StringUtil.isNullOrEmpty(reportTName) && !refTableList1.contains(PropsValues.PACKAGE_PATH + "." + reportTName)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reportTName); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reportTName, reportTName); } ArrayList<String> refTableList = new ArrayList<String>(); ArrayList<String> primaryTableList = new ArrayList<String>(); HashMap<String, ArrayList<String>> parentTableObj = new HashMap<String, ArrayList<String>>(); HashMap<String, ArrayList<String>> colNameObj = new HashMap<String, ArrayList<String>>(); //Make list of reference tables which does not have any relationship with another ref. tables //Sort all reference tables in relationship order i.e. form child - parent for (int i = 0; i < refTableList1.size(); i++) { String reftablename = refTableList1.get(i); Table tb = tableObj.get(reftablename); Iterator FkIte = tb.getForeignKeyIterator(); if (FkIte.hasNext()) { boolean flg = false; ArrayList<String> parentTName1 = new ArrayList<String>(); ArrayList<String> colName1 = new ArrayList<String>(); while (FkIte.hasNext()) { //Always keep foreign key name = parent tablename + primary column name ForeignKey obj = (ForeignKey) FkIte.next(); String parentTName = obj.getReferencedEntityName(); Column col = (Column) obj.getColumns().iterator().next(); String colName = col.getName(); if (refTableList1.contains(parentTName)) { if (primaryTableList.contains(parentTName)) { primaryTableList.remove(parentTName); } if (refTableList.contains(parentTName)) { refTableList.remove(parentTName); if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } refTableList.add(parentTName); } else if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } parentTName1.add(parentTName); colName1.add(colName); flg = true; } else { if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); flg = true; } continue; } } parentTableObj.put(reftablename, parentTName1); colNameObj.put(reftablename, colName1); if (!flg) { primaryTableList.add(reftablename); } } else if (!FkIte.hasNext()) { //Check whether reference table is already part of parentTableObj. //If yes then not to add in primaryList boolean flg = true; Iterator temp = parentTableObj.keySet().iterator(); while (temp.hasNext()) { ArrayList<String> ttemp = (ArrayList<String>) parentTableObj.get(temp.next()); for (int l = 0; l < ttemp.size(); l++) { if (ttemp.contains(reftablename)) { flg = false; break; } } if (!flg) { break; } } if (flg) { primaryTableList.add(reftablename); } } } String delQuery = ""; for (int i = 0; i < refTableList.size(); i++) { String reftablename = refTableList.get(i); ArrayList<String> parentTName = parentTableObj.get(reftablename); ArrayList<String> colName = colNameObj.get(reftablename); for (int j = 0; j < parentTName.size(); j++) { String shortRefTName = shortTableNames.get(reftablename); String shortParentTName = shortTableNames.get(parentTName.get(j)); if (StringUtil.isNullOrEmpty(str)) { str += reftablename + " as " + shortRefTName + " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; delQuery += shortRefTName + ".deleteflag = 0 and " + shortParentTName + ".deleteflag = 0 "; } else if (str.contains(shortRefTName)) { //if reference table is already part of query then use alias str += " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } else { //otherwise use full path str += " inner join " + reftablename + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } } } String primaryTableQuery = ""; for (int i = 0; i < primaryTableList.size(); i++) { String reftablename = primaryTableList.get(i); String shortRefTName = shortTableNames.get(reftablename); if (StringUtil.isNullOrEmpty(delQuery)) { delQuery += shortRefTName + ".deleteflag = 0 "; } else if (!delQuery.contains(shortRefTName)) { delQuery += " and " + shortRefTName + ".deleteflag = 0 "; } if (StringUtil.isNullOrEmpty(primaryTableQuery)) { primaryTableQuery += " from " + reftablename + " as " + shortRefTName; } else { primaryTableQuery += " , " + reftablename + " as " + shortRefTName; } } String finalQuery = ""; if (!StringUtil.isNullOrEmpty(primaryTableQuery)) { finalQuery += primaryTableQuery; } if (!StringUtil.isNullOrEmpty(str)) { if (StringUtil.isNullOrEmpty(finalQuery)) { finalQuery = " from " + str; } else { finalQuery += ", " + str; } } //Fetch all display columns String SELECT_QUERY = "select mb_gridconfig.name, mb_gridconfig.xtype, mb_gridconfig.combogridconfig, mb_gridconfig.countflag, mb_gridconfig.reftable from com.krawler.esp.hibernate.impl.mb_gridconfig as mb_gridconfig" + " where mb_gridconfig.reportid = ?"; List list = find(SELECT_QUERY, new Object[] { report }); ite = list.iterator(); String fieldQuery = ""; ArrayList<String> fieldNameArray = new ArrayList<String>(); ArrayList<String> countFieldNameArray = new ArrayList<String>(); while (ite.hasNext()) { Object[] row = (Object[]) ite.next(); String fieldName = row[0].toString(); String xtype = row[1].toString(); String combogridconfig = "-1"; if (row[2] != null) { combogridconfig = row[2].toString(); } //Check for count flag if (row[3] != null && Boolean.parseBoolean(row[3].toString())) {//countFlag countFieldNameArray.add(row[4].toString()); } else { fieldNameArray.add(fieldName); String className = ""; if (xtype.equals("Combobox") && combogridconfig.equals("-1")) { className = fieldName.split(PropsValues.REPORT_HARDCODE_STR)[0]; fieldName = className + "." + getPrimaryColName(className); } else { fieldName = fieldName.replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); } fieldQuery += fieldName + ","; } } if (StringUtil.isNullOrEmpty(fieldQuery)) { fieldQuery = "Select * "; } else { fieldQuery = "Select " + fieldQuery.substring(0, fieldQuery.length() - 1); } //Check for mapping filter String filterQry = ""; if (Boolean.parseBoolean(request.getParameter("isFilter"))) { // filterQry = " "+reportTName+"."+request.getParameter("filterfield").split(PropsValues.REPORT_HARDCODE_STR)[1]+" = '"+request.getParameter("filtervalue")+"'"; filterQry = request.getParameter("filterfield").replaceAll(PropsValues.REPORT_HARDCODE_STR, ".") + " = '" + request.getParameter("filtervalue") + "'"; } if (!StringUtil.isNullOrEmpty(delQuery)) { if (!StringUtil.isNullOrEmpty(filterQry)) { delQuery = " where " + filterQry + " and " + delQuery; } else { delQuery = " where " + delQuery; } } //Check for comments SELECT_QUERY = "select mb_moduleConfigMap.configid.configid from com.krawler.esp.hibernate.impl.mb_moduleConfigMap " + "as mb_moduleConfigMap where mb_moduleConfigMap.moduleid = ? "; List configlist = find(SELECT_QUERY, new Object[] { report }); ite = configlist.iterator(); boolean commentFlag = false; boolean docFlag = false; while (ite.hasNext()) { int configid = (Integer) ite.next(); if (configid == 1) { // Comments commentFlag = true; } else if (configid == 2) { // Documents docFlag = true; } } JSONObject jobj = new JSONObject(); int count = 0; String searchFilter = ""; if (request.getParameter("filterJson") != null && !request.getParameter("filterJson").equals("")) { JSONArray filterJsonObj = new JSONArray(request.getParameter("filterJson")); JSONObject ObjJSONObject = null; String substr = ""; String reportClassName = ""; for (int i = 0; i < filterJsonObj.length(); i++) { ObjJSONObject = (JSONObject) filterJsonObj.get(i); reportClassName = ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[0]; if (ObjJSONObject.getString("xtype").equals("Date")) { String[] splitString = ObjJSONObject.getString("searchText").split(","); String fromDate = splitString[0]; String toDate = splitString[1]; substr = " >= '" + fromDate + " 00:00:00" + "'" + " and " + reportClassName + "." + ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[1] + " <= '" + toDate + " 00:00:00" + "'"; } else if (ObjJSONObject.getString("xtype").equals("Number(Integer)") || ObjJSONObject.getString("xtype").equals("Number(Float)")) { substr = " = " + ObjJSONObject.getString("searchText"); } else if (ObjJSONObject.getString("xtype").equals("radio") || ObjJSONObject.getString("xtype").equalsIgnoreCase("checkbox")) { substr = " = " + Boolean.parseBoolean(ObjJSONObject.getString("searchText")); } else if (ObjJSONObject.getString("xtype").equals("Combobox")) { substr = " = '" + ObjJSONObject.getString("searchText") + "'"; if (!ObjJSONObject.getString("combogridconfig").equals("-1")) { searchFilter += " and " + reportClassName + "." + ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[1] + substr; } else { if (reportTName.equals("")) { searchFilter += " and " + reportClassName + ".id" + substr; } else { searchFilter += " and " + reportClassName + "id" + substr; } } } else { substr = " like '%" + ObjJSONObject.getString("searchText") + "%'"; } if (!ObjJSONObject.getString("xtype").equals("Combobox")) { searchFilter += " and " + reportClassName + "." + ObjJSONObject.getString("column").split(PropsValues.REPORT_HARDCODE_STR)[1] + substr; } } } //Generate rules filter query for report grid String ruleFilterQuery = ""; // ArrayList permArray = AuthHandler.getRealRoleids(request); // for(int i = 0; i < permArray.size(); i++) { // int roleid = Integer.parseInt(permArray.get(i).toString()); // String res = ModuleBuilderController.checkFilterRulesQuery(session, report, roleid, 0, ""); // if(!StringUtil.isNullOrEmpty(res)) { // res = "("+res +")"; // if(!StringUtil.isNullOrEmpty(ruleFilterQuery)) // ruleFilterQuery = res + " or " + ruleFilterQuery; // else // ruleFilterQuery = res; // } // } if (!StringUtil.isNullOrEmpty(ruleFilterQuery)) ruleFilterQuery = " and " + ruleFilterQuery; String sortQuery = ""; if (request.getParameter("sort") != null && !request.getParameter("sort").equals("")) { String sortColumnName = request.getParameter("sort").replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); sortQuery = " Order by " + sortColumnName + " " + request.getParameter("dir"); } Object[] paramArray = null; if (!StringUtil.isNullOrEmpty(finalQuery)) { //Get implementation class object and call before dataLoad method. //Check for reportTName is null; String className = reportTName; if (StringUtil.isNullOrEmpty(className)) { className = "rb_" + reportDao.toLZ(report.getReportkey(), 3) + "_" + report.getReportname().replace(" ", "").toLowerCase(); ; } Class cl1 = Class.forName(PropsValues.PACKAGE_PATH + ".impl_" + className); java.lang.reflect.Constructor co1 = cl1.getConstructor(); Object invoker1 = co1.newInstance(); Class arguments1[] = new Class[] { HibernateTemplate.class, HttpServletRequest.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, ArrayList.class, ArrayList.class, Boolean.class, Boolean.class, JSONObject.class, Boolean.class, Object[].class }; java.lang.reflect.Method objMethod1 = cl1.getMethod("beforeGridLoadData", arguments1); Object[] obj1 = new Object[] { getHibernateTemplate(), request, finalQuery, fieldQuery, delQuery, searchFilter, ruleFilterQuery, sortQuery, reportTName, fieldNameArray, countFieldNameArray, commentFlag, docFlag, jobj, true, paramArray }; Object result11 = objMethod1.invoke(invoker1, obj1); } if (jobj.has("data")) { jobj.put("count", count); result = jobj.toString(); } else { result = "{data:[],count : 0}"; } } catch (HibernateException e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (ServiceException e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (Exception e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } finally { return result; } }
From source file:com.krawler.esp.hibernate.impl.reportMethods.java
License:Open Source License
public JSONObject getModuleData(HttpServletRequest request) { String result = "{data:[],count : 0}"; JSONObject jobj = new JSONObject(); try {//w ww.j a v a 2 s . c o m String reportid = request.getParameter("moduleid"); String query = null; Configuration cfg = getConfig(); java.util.Iterator itr = cfg.getTableMappings(); HashMap<String, Table> tableObj = new HashMap<String, Table>(); while (itr.hasNext()) { Table table = (Table) itr.next(); tableObj.put(PropsValues.PACKAGE_PATH + "." + table.getName(), table); } //Fetch all reference tables in report mb_reportlist report = (mb_reportlist) get(mb_reportlist.class, reportid); query = "Select distinct mb_gridconfig.reftable as tablename from " + PropsValues.PACKAGE_PATH + ".mb_gridconfig as mb_gridconfig where mb_gridconfig.reportid = ? and mb_gridconfig.countflag = ? "; List ls = find(query, new Object[] { report, false }); java.util.Iterator ite = ls.iterator(); String str = ""; ArrayList<String> refTableList1 = new ArrayList<String>(); HashMap<String, String> shortTableNames = new HashMap<String, String>(); while (ite.hasNext()) { String reftablename = (String) ite.next(); if (!StringUtil.isNullOrEmpty(reftablename)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reftablename); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reftablename, reftablename); } } //If new table created not present in arraylist then it is added forcefully String reportTName = reportDao.getReportTableName(reportid); if (!StringUtil.isNullOrEmpty(reportTName) && !refTableList1.contains(PropsValues.PACKAGE_PATH + "." + reportTName)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reportTName); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reportTName, reportTName); } ArrayList<String> refTableList = new ArrayList<String>(); ArrayList<String> primaryTableList = new ArrayList<String>(); HashMap<String, ArrayList<String>> parentTableObj = new HashMap<String, ArrayList<String>>(); HashMap<String, ArrayList<String>> colNameObj = new HashMap<String, ArrayList<String>>(); //Make list of reference tables which does not have any relationship with another ref. tables //Sort all reference tables in relationship order i.e. form child - parent for (int i = 0; i < refTableList1.size(); i++) { String reftablename = refTableList1.get(i); Table tb = tableObj.get(reftablename); Iterator FkIte = tb.getForeignKeyIterator(); if (FkIte.hasNext()) { boolean flg = false; ArrayList<String> parentTName1 = new ArrayList<String>(); ArrayList<String> colName1 = new ArrayList<String>(); while (FkIte.hasNext()) { //Always keep foreign key name = parent tablename + primary column name ForeignKey obj = (ForeignKey) FkIte.next(); String parentTName = obj.getReferencedEntityName(); Column col = (Column) obj.getColumns().iterator().next(); String colName = col.getName(); if (refTableList1.contains(parentTName)) { if (primaryTableList.contains(parentTName)) { primaryTableList.remove(parentTName); } if (refTableList.contains(parentTName)) { refTableList.remove(parentTName); if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } refTableList.add(parentTName); } else if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } parentTName1.add(parentTName); colName1.add(colName); flg = true; } else { if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); flg = true; } continue; } } parentTableObj.put(reftablename, parentTName1); colNameObj.put(reftablename, colName1); if (!flg) { primaryTableList.add(reftablename); } } else if (!FkIte.hasNext()) { //Check whether reference table is already part of parentTableObj. //If yes then not to add in primaryList boolean flg = true; Iterator temp = parentTableObj.keySet().iterator(); while (temp.hasNext()) { ArrayList<String> ttemp = (ArrayList<String>) parentTableObj.get(temp.next()); for (int l = 0; l < ttemp.size(); l++) { if (ttemp.contains(reftablename)) { flg = false; break; } } if (!flg) { break; } } if (flg) { primaryTableList.add(reftablename); } } } String delQuery = ""; for (int i = 0; i < refTableList.size(); i++) { String reftablename = refTableList.get(i); ArrayList<String> parentTName = parentTableObj.get(reftablename); ArrayList<String> colName = colNameObj.get(reftablename); for (int j = 0; j < parentTName.size(); j++) { String shortRefTName = shortTableNames.get(reftablename); String shortParentTName = shortTableNames.get(parentTName.get(j)); if (StringUtil.isNullOrEmpty(str)) { str += reftablename + " as " + shortRefTName + " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; delQuery += shortRefTName + ".deleteflag = 0 and " + shortParentTName + ".deleteflag = 0 "; } else if (str.contains(shortRefTName)) { //if reference table is already part of query then use alias str += " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } else { //otherwise use full path str += " inner join " + reftablename + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } } } String primaryTableQuery = ""; for (int i = 0; i < primaryTableList.size(); i++) { String reftablename = primaryTableList.get(i); String shortRefTName = shortTableNames.get(reftablename); if (StringUtil.isNullOrEmpty(delQuery)) { delQuery += shortRefTName + ".deleteflag = 0 "; } else if (!delQuery.contains(shortRefTName)) { delQuery += " and " + shortRefTName + ".deleteflag = 0 "; } if (StringUtil.isNullOrEmpty(primaryTableQuery)) { primaryTableQuery += " from " + reftablename + " as " + shortRefTName; } else { primaryTableQuery += " , " + reftablename + " as " + shortRefTName; } } String finalQuery = ""; if (!StringUtil.isNullOrEmpty(primaryTableQuery)) { finalQuery += primaryTableQuery; } if (!StringUtil.isNullOrEmpty(str)) { if (StringUtil.isNullOrEmpty(finalQuery)) { finalQuery = " from " + str; } else { finalQuery += ", " + str; } } //Fetch all display columns String SELECT_QUERY = "select mb_gridconfig.name, mb_gridconfig.xtype, mb_gridconfig.combogridconfig, mb_gridconfig.countflag, mb_gridconfig.reftable, mb_gridconfig.displayfield from com.krawler.esp.hibernate.impl.mb_gridconfig as mb_gridconfig" + " where mb_gridconfig.reportid = ?"; List list = find(SELECT_QUERY, new Object[] { report }); ite = list.iterator(); String fieldQuery = ""; ArrayList<String> fieldNameArray = new ArrayList<String>(); ArrayList<String> countFieldNameArray = new ArrayList<String>(); ArrayList<String> displayFieldArray = new ArrayList<String>(); while (ite.hasNext()) { Object[] row = (Object[]) ite.next(); String fieldName = row[0].toString(); String displayField = row[5].toString(); String xtype = row[1].toString(); String combogridconfig = "-1"; if (row[2] != null) { combogridconfig = row[2].toString(); } //Check for count flag if (row[3] != null && Boolean.parseBoolean(row[3].toString())) {//countFlag countFieldNameArray.add(row[4].toString()); } else { fieldNameArray.add(fieldName); displayFieldArray.add(displayField); String className = ""; if (xtype.equals("Combobox") && combogridconfig.equals("-1")) { className = fieldName.split(PropsValues.REPORT_HARDCODE_STR)[0]; fieldName = className + "." + getPrimaryColName(className); } else { fieldName = fieldName.replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); } fieldQuery += fieldName + ","; } } if (StringUtil.isNullOrEmpty(fieldQuery)) { fieldQuery = "Select * "; } else { fieldQuery = "Select " + fieldQuery.substring(0, fieldQuery.length() - 1); } //Check for mapping filter String filterQry = ""; if (!StringUtil.isNullOrEmpty(delQuery)) { if (!StringUtil.isNullOrEmpty(filterQry)) { delQuery = " where " + filterQry + " and " + delQuery; } else { delQuery = " where " + delQuery; } } //Check for comments boolean commentFlag = false; boolean docFlag = false; String ruleFilterQuery = ""; if (!StringUtil.isNullOrEmpty(ruleFilterQuery)) ruleFilterQuery = " and " + ruleFilterQuery; if (!StringUtil.isNullOrEmpty(finalQuery)) { //Get implementation class object and call before dataLoad method. //Check for reportTName is null; String className = reportTName; if (StringUtil.isNullOrEmpty(className)) { className = "rb_" + reportDao.toLZ(report.getReportkey(), 3) + "_" + report.getReportname().replace(" ", "").toLowerCase(); } Class cl1 = Class.forName(PropsValues.PACKAGE_PATH + ".impl_" + className); java.lang.reflect.Constructor co1 = cl1.getConstructor(); Object invoker1 = co1.newInstance(); Class arguments1[] = new Class[] { HibernateTemplate.class, HttpServletRequest.class, String.class, String.class, String.class, String.class, String.class, ArrayList.class, ArrayList.class, ArrayList.class, Boolean.class, Boolean.class, JSONObject.class }; java.lang.reflect.Method objMethod1 = cl1.getMethod("beforeGridExportData", arguments1); Object[] obj1 = new Object[] { getHibernateTemplate(), request, finalQuery, fieldQuery, delQuery, ruleFilterQuery, reportTName, displayFieldArray, fieldNameArray, countFieldNameArray, commentFlag, docFlag, jobj }; Object result11 = objMethod1.invoke(invoker1, obj1); } } catch (HibernateException e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (Exception e) { logger.warn(e.getMessage(), e); result = "{data:[],count : 0}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } finally { return jobj; } }
From source file:com.krawler.workflow.module.dao.ModuleBuilderDaoImpl.java
License:Open Source License
public String getGridData(HttpServletRequest request, Hashtable coldata, Object id, String pTable) { String result = "{data:[],count : 0}"; try {// www .j a v a2s . com // int start = Integer.parseInt(request.getParameter("start")); // int limit = Integer.parseInt(request.getParameter("limit")); String tName = coldata.get("reftable").toString(); String reportid = reportDao.getReportIdFromTable(tName); String query = null; Configuration cfg = getConfig(); java.util.Iterator itr = cfg.getTableMappings(); HashMap<String, Table> tableObj = new HashMap<String, Table>(); while (itr.hasNext()) { Table table = (Table) itr.next(); tableObj.put(PropsValues.PACKAGE_PATH + "." + table.getName(), table); } //Fetch all reference tables in report mb_reportlist report = (mb_reportlist) get(mb_reportlist.class, reportid); query = "Select distinct mb_gridconfig.reftable as tablename from " + PropsValues.PACKAGE_PATH + ".mb_gridconfig as mb_gridconfig where mb_gridconfig.reportid = ? and mb_gridconfig.countflag = ? "; List ls = find(query, new Object[] { report, false }); java.util.Iterator ite = ls.iterator(); String str = ""; ArrayList<String> refTableList1 = new ArrayList<String>(); HashMap<String, String> shortTableNames = new HashMap<String, String>(); while (ite.hasNext()) { String reftablename = (String) ite.next(); if (!StringUtil.isNullOrEmpty(reftablename)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reftablename); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reftablename, reftablename); } } //If new table created not present in arraylist then it is added forcefully String reportTName = reportDao.getReportTableName(reportid); if (!StringUtil.isNullOrEmpty(reportTName) && !refTableList1.contains(PropsValues.PACKAGE_PATH + "." + reportTName)) { refTableList1.add(PropsValues.PACKAGE_PATH + "." + reportTName); shortTableNames.put(PropsValues.PACKAGE_PATH + "." + reportTName, reportTName); } ArrayList<String> refTableList = new ArrayList<String>(); ArrayList<String> primaryTableList = new ArrayList<String>(); HashMap<String, ArrayList<String>> parentTableObj = new HashMap<String, ArrayList<String>>(); HashMap<String, ArrayList<String>> colNameObj = new HashMap<String, ArrayList<String>>(); //Make list of reference tables which does not have any relationship with another ref. tables //Sort all reference tables in relationship order i.e. form child - parent for (int i = 0; i < refTableList1.size(); i++) { String reftablename = refTableList1.get(i); Table tb = tableObj.get(reftablename); Iterator FkIte = tb.getForeignKeyIterator(); if (FkIte.hasNext()) { boolean flg = false; ArrayList<String> parentTName1 = new ArrayList<String>(); ArrayList<String> colName1 = new ArrayList<String>(); while (FkIte.hasNext()) { //Always keep foreign key name = parent tablename + primary column name ForeignKey obj = (ForeignKey) FkIte.next(); String parentTName = obj.getReferencedEntityName(); Column col = (Column) obj.getColumns().iterator().next(); String colName = col.getName(); if (refTableList1.contains(parentTName)) { if (primaryTableList.contains(parentTName)) { primaryTableList.remove(parentTName); } if (refTableList.contains(parentTName)) { refTableList.remove(parentTName); if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } refTableList.add(parentTName); } else if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); } parentTName1.add(parentTName); colName1.add(colName); flg = true; } else { if (!refTableList.contains(reftablename)) { refTableList.add(reftablename); flg = true; } continue; } } parentTableObj.put(reftablename, parentTName1); colNameObj.put(reftablename, colName1); if (!flg) { primaryTableList.add(reftablename); } } else if (!FkIte.hasNext()) { //Check whether reference table is already part of parentTableObj. //If yes then not to add in primaryList boolean flg = true; Iterator temp = parentTableObj.keySet().iterator(); while (temp.hasNext()) { ArrayList<String> ttemp = (ArrayList<String>) parentTableObj.get(temp.next()); for (int l = 0; l < ttemp.size(); l++) { if (ttemp.contains(reftablename)) { flg = false; break; } } if (!flg) { break; } } if (flg) { primaryTableList.add(reftablename); } } } String delQuery = ""; for (int i = 0; i < refTableList.size(); i++) { String reftablename = refTableList.get(i); ArrayList<String> parentTName = parentTableObj.get(reftablename); ArrayList<String> colName = colNameObj.get(reftablename); for (int j = 0; j < parentTName.size(); j++) { String shortRefTName = shortTableNames.get(reftablename); String shortParentTName = shortTableNames.get(parentTName.get(j)); if (StringUtil.isNullOrEmpty(str)) { str += reftablename + " as " + shortRefTName + " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; delQuery += shortRefTName + ".deleteflag = 0 and " + shortParentTName + ".deleteflag = 0 "; } else if (str.contains(shortRefTName)) { //if reference table is already part of query then use alias str += " inner join " + shortRefTName + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } else { //otherwise use full path str += " inner join " + reftablename + "." + colName.get(j) + " as " + shortParentTName; if (!delQuery.contains(shortParentTName)) { delQuery += " and " + shortParentTName + ".deleteflag = 0 "; } } } } String primaryTableQuery = ""; for (int i = 0; i < primaryTableList.size(); i++) { String reftablename = primaryTableList.get(i); String shortRefTName = shortTableNames.get(reftablename); if (StringUtil.isNullOrEmpty(delQuery)) { delQuery += shortRefTName + ".deleteflag = 0 "; } else if (!delQuery.contains(shortRefTName)) { delQuery += " and " + shortRefTName + ".deleteflag = 0 "; } if (StringUtil.isNullOrEmpty(primaryTableQuery)) { primaryTableQuery += " from " + reftablename + " as " + shortRefTName; } else { primaryTableQuery += " , " + reftablename + " as " + shortRefTName; } } String finalQuery = ""; if (!StringUtil.isNullOrEmpty(primaryTableQuery)) { finalQuery += primaryTableQuery; } if (!StringUtil.isNullOrEmpty(str)) { if (StringUtil.isNullOrEmpty(finalQuery)) { finalQuery = " from " + str; } else { finalQuery = ", " + str; } } //Fetch all display columns String SELECT_QUERY = "select mb_gridconfig.name, mb_gridconfig.xtype, mb_gridconfig.combogridconfig, mb_gridconfig.countflag, mb_gridconfig.reftable from com.krawler.esp.hibernate.impl.mb_gridconfig as mb_gridconfig" + " where mb_gridconfig.reportid = ?"; List list = find(SELECT_QUERY, new Object[] { report }); ite = list.iterator(); String fieldQuery = ""; ArrayList<String> fieldNameArray = new ArrayList<String>(); ArrayList<String> countFieldNameArray = new ArrayList<String>(); while (ite.hasNext()) { Object[] row = (Object[]) ite.next(); String fieldName = row[0].toString(); String xtype = row[1].toString(); String combogridconfig = "-1"; if (row[2] != null) { combogridconfig = row[2].toString(); } //Check for count flag if (row[3] != null && Boolean.parseBoolean(row[3].toString())) {//countFlag countFieldNameArray.add(row[4].toString()); } else { fieldNameArray.add(fieldName); String className = ""; if (xtype.equals("Combobox") && combogridconfig.equals("-1")) { className = fieldName.split(PropsValues.REPORT_HARDCODE_STR)[0]; fieldName = className + "." + getPrimaryColName(className); } else { fieldName = fieldName.replaceAll(PropsValues.REPORT_HARDCODE_STR, "."); } fieldQuery += fieldName + ","; } } if (StringUtil.isNullOrEmpty(fieldQuery)) { fieldQuery = "Select * "; } else { fieldQuery = "Select " + fieldQuery.substring(0, fieldQuery.length() - 1); } //Check for mapping filter String filtertablename = PropsValues.PACKAGE_PATH + "." + pTable; Class modcl = Class.forName(filtertablename); Object modObj = get(modcl, id.toString()); String filterQry = " where " + tName + "." + pTable + "id=?"; if (!StringUtil.isNullOrEmpty(delQuery)) { if (!StringUtil.isNullOrEmpty(filterQry)) { delQuery = filterQry + " and " + delQuery; } else { delQuery = " where " + delQuery; } } //Check for comments SELECT_QUERY = "select mb_moduleConfigMap.configid.configid from com.krawler.esp.hibernate.impl.mb_moduleConfigMap " + "as mb_moduleConfigMap where mb_moduleConfigMap.moduleid = ? "; List configlist = find(SELECT_QUERY, new Object[] { report }); ite = configlist.iterator(); boolean commentFlag = false; boolean docFlag = false; while (ite.hasNext()) { int configid = (Integer) ite.next(); if (configid == 1) { // Comments commentFlag = true; } if (configid == 2) { // Documents commentFlag = true; } } //Generate rules filter query for report grid String ruleFilterQuery = ""; // ArrayList permArray = AuthHandler.getRealRoleids(request); // for(int i = 0; i < permArray.size(); i++) { // int roleid = Integer.parseInt(permArray.get(i).toString()); // String res = ModuleBuilderController.checkFilterRulesQuery(session, report, roleid, 0, ""); // if(!StringUtil.isNullOrEmpty(res)) { // res = "("+res +")"; // if(!StringUtil.isNullOrEmpty(ruleFilterQuery)) // ruleFilterQuery = res + " or " + ruleFilterQuery; // else // ruleFilterQuery = res; // } // } if (!StringUtil.isNullOrEmpty(ruleFilterQuery)) ruleFilterQuery = " and " + ruleFilterQuery; String searchFilter = ""; String sortQuery = ""; JSONObject jobj = new JSONObject(); Object[] paramArray = new Object[] { modObj }; if (!StringUtil.isNullOrEmpty(finalQuery)) { //Get implementation class object and call before dataLoad method. //Check for reportTName is null; String className = reportTName; if (StringUtil.isNullOrEmpty(className)) { className = "rb_" + reportDao.toLZ(report.getReportkey(), 3) + "_" + report.getReportname().replace(" ", "").toLowerCase(); } Class cl1 = Class.forName(PropsValues.PACKAGE_PATH + ".impl_" + className); java.lang.reflect.Constructor co1 = cl1.getConstructor(); Object invoker1 = co1.newInstance(); Class arguments1[] = new Class[] { HibernateTemplate.class, HttpServletRequest.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, ArrayList.class, ArrayList.class, Boolean.class, Boolean.class, JSONObject.class, Boolean.class, Object[].class }; java.lang.reflect.Method objMethod1 = cl1.getMethod("beforeGridLoadData", arguments1); Object[] obj1 = new Object[] { getHibernateTemplate(), request, finalQuery, fieldQuery, delQuery, searchFilter, ruleFilterQuery, sortQuery, reportTName, fieldNameArray, countFieldNameArray, commentFlag, docFlag, jobj, false, paramArray }; Object result11 = objMethod1.invoke(invoker1, obj1); } if (jobj.has("data")) { // jobj.put("count", count); result = jobj.toString(); } else { result = "{data:[]}"; } } catch (HibernateException e) { logger.warn(e.getMessage(), e); result = "{data:[]}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } catch (Exception e) { logger.warn(e.getMessage(), e); result = "{data:[]}"; throw ServiceException.FAILURE("reportMethods.loadData", e); } finally { return result; } }
From source file:com.manydesigns.portofino.persistence.hibernate.HibernateConfig.java
License:Open Source License
private DependantValue createFKComposite(Mappings mappings, com.manydesigns.portofino.model.database.ForeignKey relationship, com.manydesigns.portofino.model.database.Table manyMDTable, PersistentClass clazzOne, PersistentClass clazzMany, Bag set, Table tableMany, Table tableOne, List<Column> oneColumns, List<Column> manyColumns) { DependantValue dv;/* ww w . ja v a 2 s .c o m*/ Component component = new Component(mappings, set); component.setDynamic(manyMDTable.getActualJavaClass() == null); component.setEmbedded(true); dv = new DependantValue(mappings, clazzMany.getTable(), component); dv.setNullable(true); dv.setUpdateable(true); for (Reference ref : relationship.getReferences()) { String colToName = ref.getToColumn(); String colToPropertyName = ref.getActualToColumn().getActualPropertyName(); String colFromName = ref.getFromColumn(); Iterator it = tableMany.getColumnIterator(); while (it.hasNext()) { Column col = (Column) it.next(); if (col.getName().equals(colFromName)) { dv.addColumn(col); manyColumns.add(col); break; } } Iterator it2 = tableOne.getColumnIterator(); while (it2.hasNext()) { Column col = (Column) it2.next(); if (col.getName().equals(colToName)) { oneColumns.add(col); break; } } Property refProp; refProp = getRefProperty(clazzOne, colToPropertyName); component.addProperty(refProp); } return dv; }
From source file:com.manydesigns.portofino.persistence.hibernate.HibernateConfig.java
License:Open Source License
private DependantValue createFKSingle(Mappings mappings, PersistentClass clazzOne, PersistentClass clazzMany, Table tableOne, List<Column> oneColumns, List<Column> manyColumns, List<Reference> refs) { DependantValue dv;/*from w ww . j a v a 2 s.c o m*/ Property refProp; Reference reference = refs.get(0); String colFromName = reference.getFromColumn(); String colToName = reference.getToColumn(); String colToPropertyName = reference.getActualToColumn().getActualPropertyName(); refProp = getRefProperty(clazzOne, colToPropertyName); dv = new DependantValue(mappings, clazzMany.getTable(), refProp.getPersistentClass().getKey()); dv.setNullable(true); dv.setUpdateable(true); Iterator it = clazzMany.getTable().getColumnIterator(); while (it.hasNext()) { Column col = (Column) it.next(); if (col.getName().equals(colFromName)) { dv.addColumn(col); manyColumns.add(col); break; } } Iterator it2 = tableOne.getColumnIterator(); while (it2.hasNext()) { Column col = (Column) it2.next(); if (col.getName().equals(colToName)) { oneColumns.add(col); break; } } return dv; }
From source file:com.oy.shared.lm.ext.HBMCtoGRAPH.java
License:Open Source License
private Attribute addSimpleProp(SimpleValue val, String name) { if (!val.isSimpleValue()) { throw new RuntimeException("Expected SimpleValue."); }/* ww w.ja v a 2 s . co m*/ Attribute attr = new Attribute(); attr.name = name; if (attr.name == null) { Iterator iter = val.getColumnIterator(); while (iter.hasNext()) { Column col = (Column) iter.next(); attr.name = col.getName(); break; } } if (val instanceof Component) { attr.type = ((Component) val).getComponentClassName(); } else { attr.type = val.getType().getName(); } return attr; }
From source file:com.tomitribe.reveng.codegen.FreemarkerObject.java
License:Apache License
public String generateManyToOneAnnotation(final BasicPOJOClass pojo, final Property p, String table) { // @ForeignKey(name="FK_recipe_tree_node") final Value value = p.getValue(); final int span; final Iterator columnIterator; if (value != null && value instanceof Collection) { final Collection collection = (Collection) value; span = collection.getKey().getColumnSpan(); columnIterator = collection.getKey().getColumnIterator(); } else {/*from w w w. ja va2 s. c o m*/ span = p.getColumnSpan(); columnIterator = p.getColumnIterator(); } final Selectable selectable = (Selectable) columnIterator.next(); final Column column = (Column) selectable; table += "_" + column.getName(); // id_tree_node table = "FK_" + table.replace("_id_", "_"); String s = EntityPOJOClass.class.cast(pojo).generateManyToOneAnnotation(p); s += "\n@ForeignKey(name=\"" + table + "\")"; // log.info(s); return s; }
From source file:com.tomitribe.reveng.codegen.FreemarkerObject.java
License:Apache License
public String annotate(final BasicPOJOClass pojo, final Object pObj, final Object rootObj, final Object toolObj) { // public String annotate(final Object pojo, final Property p, final // RootClass root, final Cfg2HbmTool tool) { if (BasicPOJOClass.class.isInstance(pojo)) { } else {//from w w w. j a va 2 s . c o m // System.out.println(ob.class.getName()); } RootClass root = null; try { root = (RootClass) rootObj; } catch (final Exception e) { // TODO Auto-generated catch block // e.printStackTrace(); return ""; } final Property p = (Property) pObj; final Cfg2HbmTool tool = (Cfg2HbmTool) toolObj; final Table table = root.getTable(); Iterator it = table.getColumnIterator(); Column column = null; Column c; String name; while (it.hasNext()) { c = (Column) it.next(); name = c.getName().replace("_", "").toLowerCase(); if (name.equals(p.getName().toLowerCase())) { column = c; break; } } if (null != column) { System.out.print("FreemarkerObject.annotate: " + table.getName() + " - " + p.getName() + " - "); it = table.getIndexIterator(); org.hibernate.mapping.Index index; while (it.hasNext()) { final Object next = it.next(); if (org.hibernate.mapping.Index.class.isInstance(next)) { index = org.hibernate.mapping.Index.class.cast(next); if (index.containsColumn(column)) { System.out.print(index.getName()); return String.format("\n@Index(name = \"%1$s\", columnNames = {\"%2$s\"})", index.getName().toLowerCase(), column.getName()); } } } System.out.println(); } else { System.out.println("FreemarkerObject.annotate: " + table.getName() + " - " + p.getName() + " - " + p.getNodeName() + " - " + p.getPropertyAccessorName()); } return ""; }