List of usage examples for org.hibernate SQLQuery uniqueResult
R uniqueResult();
From source file:de.csw.expertfinder.expertise.ExpertiseModel.java
License:Open Source License
/** * Returns the TF/IDF weighting for the given word in the given document. * Does no word normalization in terms of lemmatization or stemming! If * normalization is needed, it has to be done on the word before calling * this method./* w w w .ja va 2s . c om*/ * * @param documentId * the id of the document * @param word * the word (lemma or stem) * @return the TF/IDF */ public double getTFIDFWeight(Long documentId, String word) { persistenceStore.beginTransaction(); SQLQuery q = persistenceStore .createSQLQuery("select count(*) as count from ( " + "select word from word w, revision r " + "where w.id_revision_created = r.id " + "and w.id_revision_deleted is null " + "and r.id_document = :documentId " + "and word = :word) words"); q.setLong("documentId", documentId).setString("word", word); q.addScalar("count", Hibernate.INTEGER); int wordDocumentFreq = (Integer) q.uniqueResult(); q = persistenceStore.createSQLQuery("select count(*) as count from ( " + "select word from word w, revision r " + "where w.id_revision_created = r.id " + "and w.id_revision_deleted is null " + "and r.id_document = :documentId) words"); q.setLong("documentId", documentId); q.addScalar("count", Hibernate.INTEGER); int allDocumentFreq = (Integer) q.uniqueResult(); q = persistenceStore.createSQLQuery("select count(*) as count from document"); q.addScalar("count", Hibernate.INTEGER); int documentCount = (Integer) q.uniqueResult(); q = persistenceStore.createSQLQuery( "select count(*) as count from ( " + " select distinct d.id from document d, revision rc, word w " + " where w.word=:word " + " and w.id_revision_created = rc.id " + " and w.id_revision_deleted is null " + " and rc.id_document = d.id) word"); q.setString("word", word); q.addScalar("count", Hibernate.INTEGER); int wordCorpusFreq = (Integer) q.uniqueResult(); persistenceStore.endTransaction(); double tf = (double) wordDocumentFreq / (double) allDocumentFreq; double idf = Math.log((double) documentCount / (double) wordCorpusFreq); return tf * idf; }
From source file:de.fhdo.terminologie.ws.search.ListCodeSystemConcepts.java
License:Apache License
public ListCodeSystemConceptsResponseType ListCodeSystemConcepts(ListCodeSystemConceptsRequestType parameter, org.hibernate.Session session, boolean noLimit, String ipAddress) { if (logger.isInfoEnabled()) logger.info("====== ListCodeSystemConcepts gestartet ======"); boolean createHibernateSession = (session == null); // Return-Informationen anlegen ListCodeSystemConceptsResponseType response = new ListCodeSystemConceptsResponseType(); response.setReturnInfos(new ReturnType()); // Parameter prfen if (validateParameter(parameter, response) == false) { logger.debug("Parameter falsch"); return response; // Fehler bei den Parametern }/*from w w w. jav a 2 s . c o m*/ // Login-Informationen auswerten (gilt fr jeden Webservice) boolean loggedIn = false; AuthenticateInfos loginInfoType = new AuthenticateInfos(); if (parameter != null && parameter.getLoginToken() != null) { loginInfoType = Authorization.authenticate(ipAddress, parameter.getLoginToken()); loggedIn = loginInfoType != null; } if (logger.isDebugEnabled()) { logger.debug("Benutzer ist eingeloggt: " + loggedIn); logger.debug("isLookForward: " + parameter.isLookForward()); } int maxPageSizeUserSpecific = 10; //int maxPageSizeUserSpecific = 1; if (parameter.getPagingParameter() != null && parameter.getPagingParameter().getUserPaging() != null) { if (parameter.getPagingParameter().getUserPaging()) maxPageSizeUserSpecific = Integer.valueOf(parameter.getPagingParameter().getPageSize()); } else { maxPageSizeUserSpecific = -1; } // PagingInfo int maxPageSize = 100; // Gibt an, wieviele Treffer maximal zurckgegeben werden //Warum loggedIn hier? Das ergibt am Termbrowser folgenden Bug: Wenn man eingeloggt ist kann man sich keine HugeFlat Concept Liste mehr ansehen e.g. LOINC! => WrongValueException! if (noLimit)// || loggedIn) { maxPageSize = -1; } else { String maxPageSizeStr = SysParameter.instance().getStringValue("maxPageSize", null, null); try { maxPageSize = Integer.parseInt(maxPageSizeStr); } catch (Exception e) { LoggingOutput.outputException(e, this); } } boolean traverseConceptsToRoot = false; int maxPageSizeSearch = 5; // Gibt an, wieviele Treffer bei einer Suche maximal zurckgegeben werden if (parameter != null && parameter.getSearchParameter() != null && parameter.getSearchParameter().getTraverseConceptsToRoot() != null && parameter.getSearchParameter().getTraverseConceptsToRoot()) { traverseConceptsToRoot = true; String maxPageSizeSearchStr = SysParameter.instance().getStringValue("maxPageSizeSearch", null, null); if (parameter != null && parameter.getSearchParameter() != null) { if (maxPageSizeSearchStr != null && maxPageSizeSearchStr.length() > 0) { try { maxPageSizeSearch = Integer.parseInt(maxPageSizeSearchStr); } catch (Exception e) { LoggingOutput.outputException(e, this); } } } } //maxPageSizeSearch = 2; //maxPageSize = 2; logger.debug("maxPageSize: " + maxPageSizeSearch); logger.debug("maxPageSizeSearch: " + maxPageSizeSearch); logger.debug("traverseConceptsToRoot: " + traverseConceptsToRoot); try { //List<CodeSystemConcept> conceptList = null; String codeSystemVersionOid = ""; long codeSystemVersionId = 0; if (parameter.getCodeSystem().getCodeSystemVersions() != null && parameter.getCodeSystem().getCodeSystemVersions().size() > 0) { CodeSystemVersion csv = (CodeSystemVersion) parameter.getCodeSystem().getCodeSystemVersions() .toArray()[0]; if (csv.getVersionId() != null) codeSystemVersionId = csv.getVersionId(); if (csv.getOid() != null) codeSystemVersionOid = csv.getOid(); } // Lizenzen prfen boolean validLicence = false; if (codeSystemVersionOid != null && codeSystemVersionOid.length() > 0) validLicence = LicenceHelper.getInstance().userHasLicence(loginInfoType.getUserId(), codeSystemVersionOid); else validLicence = LicenceHelper.getInstance().userHasLicence(loginInfoType.getUserId(), codeSystemVersionId); if (validLicence == false) { response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.WARN); response.getReturnInfos().setStatus(ReturnType.Status.FAILURE); response.getReturnInfos().setMessage("Sie besitzen keine gltige Lizenz fr dieses Vokabular!"); return response; } else logger.debug("Lizenz fr Vokabular vorhanden!"); // Hibernate-Block, Session ffnen //org.hibernate.Session hb_session = HibernateUtil.getSessionFactory().openSession(); org.hibernate.Session hb_session = null; //org.hibernate.Transaction tx = null; if (createHibernateSession) { hb_session = HibernateUtil.getSessionFactory().openSession(); //hb_session.getTransaction().begin(); //tx = hb_session.beginTransaction(); } else { hb_session = session; //hb_session.getTransaction().begin(); } try // 2. try-catch-Block zum Abfangen von Hibernate-Fehlern { if (codeSystemVersionOid != null && codeSystemVersionOid.length() > 0) { logger.debug("get csv-id from oid"); // get csv-id from oid String hql = "from CodeSystemVersion csv" + " where csv.oid=:oid"; Query q = hb_session.createQuery(hql); q.setString("oid", codeSystemVersionOid); List<CodeSystemVersion> csvList = q.list(); if (csvList != null && csvList.size() > 0) { codeSystemVersionId = csvList.get(0).getVersionId(); logger.debug("found versionId from oid: " + codeSystemVersionId); } else { response.setCodeSystemEntity(new LinkedList<CodeSystemEntity>()); response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.WARN); response.getReturnInfos().setStatus(ReturnType.Status.FAILURE); response.getReturnInfos().setMessage("Codesystem with given OID can't be found."); response.getReturnInfos().setCount(0); return response; } } if (codeSystemVersionId == 0 && parameter.getCodeSystem().getId() != null) { // Aktuelle Version des Vokabulars ermitteln long codeSystemId = parameter.getCodeSystem().getId(); CodeSystem cs = (CodeSystem) hb_session.get(CodeSystem.class, codeSystemId); if (cs != null) codeSystemVersionId = CodeSystemHelper.getCurrentVersionId(cs); } // HQL erstellen // Besonderheit hier: es drfen keine Werte nachgeladen werden // Beim Abruf eines ICD wre dieses sehr inperformant, da er fr // jeden Eintrag sonst nachladen wrde /* SELECT * FROM code_system_concept csc JOIN code_system_entity_version csev ON csc.codeSystemEntityVersionId=csev.versionId JOIN code_system_entity cse ON csev.versionId=cse.id JOIN code_system_version_entity_membership csvem ON cse.id=csvem.codeSystemEntityId LEFT JOIN code_system_concept_translation csct ON csct.codeSystemEntityVersionId=csc.codeSystemEntityVersionId WHERE csvem.codeSystemVersionId=10 */ String languageCd = ""; /*SELECT * FROM (SELECT csc.*, csev.*, csvem.isAxis, csvem.isMainClass, cse.* FROM code_system_concept csc JOIN code_system_entity_version csev ON csc.codeSystemEntityVersionId=csev.versionId JOIN code_system_entity cse ON csev.versionId=cse.id JOIN code_system_version_entity_membership csvem ON cse.id=csvem.codeSystemEntityId WHERE csvem.codeSystemVersionId=10 LIMIT 2) csc2 LEFT JOIN code_system_concept_translation csct ON csct.codeSystemEntityVersionId=csc2.codeSystemEntityVersionId*/ // //String sql = "SELECT * FROM (SELECT csc.*, csev.*, csvem.isAxis, csvem.isMainClass, cse.* FROM code_system_concept csc" String sql = "SELECT * FROM (SELECT csc.*, csev.*, csvem.isAxis, csvem.isMainClass, cse.*, csct.term translation_term, csct.termAbbrevation translation_termAbbrevation, csct.description translation_description, csct.languageCd translation_languageCd, csct.id translation_id " + " FROM code_system_concept csc" + " JOIN code_system_entity_version csev ON csc.codeSystemEntityVersionId=csev.versionId" + " JOIN code_system_entity cse ON csev.codeSystemEntityId=cse.id" + " JOIN code_system_version_entity_membership csvem ON cse.id=csvem.codeSystemEntityId" + " LEFT JOIN code_system_concept_translation csct ON csct.codeSystemEntityVersionId=csc.codeSystemEntityVersionId AND languageCd=:languageCd" //+ " LEFT JOIN code_system_concept_translation csct ON csct.codeSystemEntityVersionId=csc.codeSystemEntityVersionId AND_LANGUAGE_TERM" + " WHERE_TEIL) csc2" //+ " LEFT JOIN code_system_concept_translation csct ON csct.codeSystemEntityVersionId=csc2.codeSystemEntityVersionId"; + " LEFT JOIN code_system_entity_version_association cseva1 ON cseva1.codeSystemEntityVersionId1=csc2.versionId" + " LEFT JOIN code_system_entity_version_association cseva2 ON cseva2.codeSystemEntityVersionId2=csc2.versionId"; String sqlCount = "SELECT COUNT(*) FROM code_system_concept csc" + " JOIN code_system_entity_version csev ON csc.codeSystemEntityVersionId=csev.versionId" + " JOIN code_system_entity cse ON csev.versionId=cse.id" + " JOIN code_system_version_entity_membership csvem ON cse.id=csvem.codeSystemEntityId" + " WHERE_TEIL"; /*String sql = " FROM code_system_concept csc" + " JOIN code_system_entity_version csev ON csc.codeSystemEntityVersionId=csev.versionId" + " JOIN code_system_entity cse ON csev.versionId=cse.id" + " JOIN code_system_version_entity_membership csvem ON cse.id=csvem.codeSystemEntityId" + " LEFT JOIN code_system_concept_translation csct ON csct.codeSystemEntityVersionId=csc.codeSystemEntityVersionId";*/ //+ " WHERE csvem.codeSystemVersionId=:codeSystemVersionId" //+ " GROUP BY csc.code" //+ " ORDER BY csc.code"; // Parameter dem Helper hinzufgen // bitte immer den Helper verwenden oder manuell Parameter per Query.setString() hinzufgen, // sonst sind SQL-Injections mglich HQLParameterHelper parameterHelper = new HQLParameterHelper(); parameterHelper.addParameter("", "csvem.codeSystemVersionId", codeSystemVersionId); if (parameter != null && parameter.getCodeSystemEntity() != null) { if (parameter.getCodeSystemEntity().getCodeSystemVersionEntityMemberships() != null && parameter.getCodeSystemEntity().getCodeSystemVersionEntityMemberships().size() > 0) { CodeSystemVersionEntityMembership ms = (CodeSystemVersionEntityMembership) parameter .getCodeSystemEntity().getCodeSystemVersionEntityMemberships().toArray()[0]; parameterHelper.addParameter("csvem.", "isAxis", ms.getIsAxis()); parameterHelper.addParameter("csvem.", "isMainClass", ms.getIsMainClass()); } if (parameter.getCodeSystemEntity().getCodeSystemEntityVersions() != null && parameter.getCodeSystemEntity().getCodeSystemEntityVersions().size() > 0) { CodeSystemEntityVersion csev = (CodeSystemEntityVersion) parameter.getCodeSystemEntity() .getCodeSystemEntityVersions().toArray()[0]; parameterHelper.addParameter("csev.", "statusVisibilityDate", csev.getStatusVisibilityDate()); if (csev.getCodeSystemConcepts() != null && csev.getCodeSystemConcepts().size() > 0) { CodeSystemConcept csc = (CodeSystemConcept) csev.getCodeSystemConcepts().toArray()[0]; parameterHelper.addParameter("csc.", "code", csc.getCode()); parameterHelper.addParameter("csc.", "term", csc.getTerm()); parameterHelper.addParameter("csc.", "termAbbrevation", csc.getTermAbbrevation()); parameterHelper.addParameter("csc.", "isPreferred", csc.getIsPreferred()); if (csc.getCodeSystemConceptTranslations() != null && csc.getCodeSystemConceptTranslations().size() > 0) { CodeSystemConceptTranslation csct = (CodeSystemConceptTranslation) csc .getCodeSystemConceptTranslations().toArray()[0]; parameterHelper.addParameter("csct.", "term", csct.getTerm()); parameterHelper.addParameter("csct.", "termAbbrevation", csct.getTermAbbrevation()); if (csct.getLanguageCd() != null && csct.getLanguageCd().length() > 0) { languageCd = csct.getLanguageCd(); } } } } } /*if(languageCd.length() == 0) sql = sql.replaceAll("AND_LANGUAGE_TERM", ""); else sql = sql.replaceAll("AND_LANGUAGE_TERM", "AND languageCd=:languageCd");*/ if (loggedIn == false) { parameterHelper.addParameter("csev.", "statusVisibility", Definitions.STATUS_CODES.ACTIVE.getCode()); } // Parameter hinzufgen (immer mit AND verbunden) // Gesamt-Anzahl lesen String where = parameterHelper.getWhere(""); //sqlCount = "SELECT COUNT(DISTINCT cse.id) FROM " + sqlCount.replaceAll("WHERE_TEIL", where); sqlCount = sqlCount.replaceAll("WHERE_TEIL", where); //q.addScalar("csc.code", Hibernate.TEXT); // Index: 0 logger.debug("SQL-Count: " + sqlCount); SQLQuery qCount = hb_session.createSQLQuery(sqlCount); parameterHelper.applySQLParameter(qCount); BigInteger anzahlGesamt = (BigInteger) qCount.uniqueResult(); logger.debug("Anzahl Gesamt: " + anzahlGesamt.longValue()); if (anzahlGesamt.longValue() > 0) { // Suche begrenzen int pageSize = -1; int pageIndex = 0; boolean allEntries = false; if (parameter != null && parameter.getPagingParameter() != null) { logger.debug("Search-Parameter angegeben"); if (parameter.getPagingParameter().isAllEntries() != null && parameter.getPagingParameter().isAllEntries().booleanValue() == true) { if (loggedIn) allEntries = true; } if (parameter.getPagingParameter().getPageSize() != null) pageSize = Integer.valueOf(parameter.getPagingParameter().getPageSize()); if (parameter.getPagingParameter().getPageIndex() != null) pageIndex = parameter.getPagingParameter().getPageIndex(); } // MaxResults mit Wert aus SysParam prfen if (traverseConceptsToRoot) { if (pageSize < 0 || (maxPageSizeSearch > 0 && pageSize > maxPageSizeSearch)) pageSize = maxPageSizeSearch; } else { if (pageSize < 0 || (maxPageSize > 0 && pageSize > maxPageSize)) pageSize = maxPageSize; } if (pageIndex < 0) pageIndex = 0; logger.debug("pageIndex: " + pageIndex); logger.debug("pageSize: " + pageSize); /*String sortStr = " ORDER BY csc.code"; if (parameter.getSortingParameter() != null) { if (parameter.getSortingParameter().getSortType() == null || parameter.getSortingParameter().getSortType() == SortingType.SortType.ALPHABETICALLY) { sortStr = " ORDER BY"; if (parameter.getSortingParameter().getSortBy() != null && parameter.getSortingParameter().getSortBy() == SortingType.SortByField.TERM) { sortStr += " csc.term"; } else { sortStr += " csc.code"; } if (parameter.getSortingParameter().getSortDirection() != null && parameter.getSortingParameter().getSortDirection() == SortingType.SortDirection.DESCENDING) { sortStr += " desc"; } } }*/ String sortStr = " ORDER BY code"; if (parameter.getSortingParameter() != null) { if (parameter.getSortingParameter().getSortType() == null || parameter.getSortingParameter() .getSortType() == SortingType.SortType.ALPHABETICALLY) { sortStr = " ORDER BY"; if (parameter.getSortingParameter().getSortBy() != null && parameter .getSortingParameter().getSortBy() == SortingType.SortByField.TERM) { sortStr += " term"; } else { sortStr += " code"; } if (parameter.getSortingParameter().getSortDirection() != null && parameter.getSortingParameter() .getSortDirection() == SortingType.SortDirection.DESCENDING) { sortStr += " desc"; } } } /*String where_all = where + sortStr; if (pageSize > 0 && allEntries == false) { where_all += " LIMIT " + (pageIndex * pageSize) + "," + pageSize; } sql = sql.replaceAll("WHERE_TEIL", where_all);*/ if (pageSize > 0 && allEntries == false) { sortStr += " LIMIT " + (pageIndex * pageSize) + "," + pageSize; } sql = sql.replaceAll("WHERE_TEIL", where); sql += sortStr; int anzahl = 0; //logger.debug("SQL: " + sql); // Query erstellen SQLQuery q = hb_session.createSQLQuery(sql); q.addScalar("csc2.code", StandardBasicTypes.TEXT); // Index: 0 q.addScalar("csc2.term", StandardBasicTypes.TEXT); q.addScalar("csc2.termAbbrevation", StandardBasicTypes.TEXT); q.addScalar("csc2.description", StandardBasicTypes.TEXT); q.addScalar("csc2.isPreferred", StandardBasicTypes.BOOLEAN); q.addScalar("csc2.codeSystemEntityVersionId", StandardBasicTypes.LONG); q.addScalar("csc2.effectiveDate", StandardBasicTypes.TIMESTAMP); // Index: 6 q.addScalar("csc2.insertTimestamp", StandardBasicTypes.TIMESTAMP); q.addScalar("csc2.isLeaf", StandardBasicTypes.BOOLEAN); q.addScalar("csc2.majorRevision", StandardBasicTypes.INTEGER); q.addScalar("csc2.minorRevision", StandardBasicTypes.INTEGER); q.addScalar("csc2.statusVisibility", StandardBasicTypes.INTEGER); q.addScalar("csc2.statusVisibilityDate", StandardBasicTypes.TIMESTAMP); q.addScalar("csc2.versionId", StandardBasicTypes.LONG); q.addScalar("csc2.codeSystemEntityId", StandardBasicTypes.LONG); q.addScalar("csc2.id", StandardBasicTypes.LONG); // Index: 15 q.addScalar("csc2.currentVersionId", StandardBasicTypes.LONG); q.addScalar("csc2.isAxis", StandardBasicTypes.BOOLEAN); // Index: 17 q.addScalar("csc2.isMainClass", StandardBasicTypes.BOOLEAN); q.addScalar("translation_term", StandardBasicTypes.TEXT); // Index: 19 q.addScalar("translation_termAbbrevation", StandardBasicTypes.TEXT); q.addScalar("translation_languageCd", StandardBasicTypes.TEXT); q.addScalar("translation_description", StandardBasicTypes.TEXT); q.addScalar("translation_id", StandardBasicTypes.LONG); q.addScalar("cseva1.codeSystemEntityVersionId1", StandardBasicTypes.LONG); // Index: 24 q.addScalar("cseva1.codeSystemEntityVersionId2", StandardBasicTypes.LONG); q.addScalar("cseva1.leftId", StandardBasicTypes.LONG); q.addScalar("cseva1.associationTypeId", StandardBasicTypes.LONG); q.addScalar("cseva1.associationKind", StandardBasicTypes.INTEGER); q.addScalar("cseva1.status", StandardBasicTypes.INTEGER); q.addScalar("cseva1.statusDate", StandardBasicTypes.TIMESTAMP); q.addScalar("cseva1.insertTimestamp", StandardBasicTypes.TIMESTAMP); q.addScalar("csc2.meaning", StandardBasicTypes.TEXT); //Index: 32 q.addScalar("csc2.hints", StandardBasicTypes.TEXT); q.addScalar("csc2.statusDeactivated", StandardBasicTypes.INTEGER); // Index: 34 q.addScalar("csc2.statusDeactivatedDate", StandardBasicTypes.TIMESTAMP); q.addScalar("csc2.statusWorkflow", StandardBasicTypes.INTEGER); q.addScalar("csc2.statusWorkflowDate", StandardBasicTypes.TIMESTAMP); q.addScalar("cseva2.codeSystemEntityVersionId1", StandardBasicTypes.LONG); // Index: 38 q.addScalar("cseva2.codeSystemEntityVersionId2", StandardBasicTypes.LONG); q.addScalar("cseva2.leftId", StandardBasicTypes.LONG); q.addScalar("cseva2.associationTypeId", StandardBasicTypes.LONG); q.addScalar("cseva2.associationKind", StandardBasicTypes.INTEGER); q.addScalar("cseva2.status", StandardBasicTypes.INTEGER); q.addScalar("cseva2.statusDate", StandardBasicTypes.TIMESTAMP); q.addScalar("cseva2.insertTimestamp", StandardBasicTypes.TIMESTAMP); parameterHelper.applySQLParameter(q); //if(languageCd.length() > 0) q.setString("languageCd", languageCd); response.setCodeSystemEntity(new LinkedList<CodeSystemEntity>()); logger.debug("SQL: " + q.getQueryString()); List conceptList = (List) q.list(); Iterator it = conceptList.iterator(); long lastCodeSystemEntityVersionId = 0; CodeSystemEntity cse = new CodeSystemEntity(); CodeSystemEntityVersion csev = new CodeSystemEntityVersion(); CodeSystemConcept csc = new CodeSystemConcept(); CodeSystemVersionEntityMembership csvem = new CodeSystemVersionEntityMembership(); boolean fertig = false; while (it.hasNext()) { Object[] item = null; long codeSystemEntityVersionId = 0; do { if (it.hasNext() == false) { fertig = true; break; } item = (Object[]) it.next(); // Prfen, ob Translation (1:N) codeSystemEntityVersionId = (Long) item[5]; if (lastCodeSystemEntityVersionId == codeSystemEntityVersionId) { // Gleiches Konzept, Assoziation hinzufgen if (parameter.isLookForward()) addAssociationToEntityVersion(csev, item); } } while (lastCodeSystemEntityVersionId == codeSystemEntityVersionId); if (fertig) break; // Konzepte zusammenbauen cse = new CodeSystemEntity(); csev = new CodeSystemEntityVersion(); csc = new CodeSystemConcept(); csvem = new CodeSystemVersionEntityMembership(); // Konzept if (item[0] != null) csc.setCode(item[0].toString()); if (item[1] != null) csc.setTerm(item[1].toString()); if (item[2] != null) //csc.setTermAbbrevation(new String((char[])item[2])); csc.setTermAbbrevation(item[2].toString()); if (item[3] != null) csc.setDescription(item[3].toString()); if (item[4] != null) csc.setIsPreferred((Boolean) item[4]); if (item[5] != null) csc.setCodeSystemEntityVersionId((Long) item[5]); if (item[32] != null) csc.setMeaning(item[32].toString()); if (item[33] != null) csc.setHints(item[33].toString()); // Entity Version if (item[6] != null) csev.setEffectiveDate(DateHelper.getDateFromObject(item[6])); if (item[7] != null) csev.setInsertTimestamp(DateHelper.getDateFromObject(item[7])); if (item[8] != null) csev.setIsLeaf((Boolean) item[8]); if (item[9] != null) csev.setMajorRevision((Integer) item[9]); if (item[10] != null) csev.setMinorRevision((Integer) item[10]); if (item[11] != null) csev.setStatusVisibility((Integer) item[11]); if (item[12] != null) csev.setStatusVisibilityDate(DateHelper.getDateFromObject(item[12])); if (item[13] != null) csev.setVersionId((Long) item[13]); if (item[34] != null) csev.setStatusDeactivated((Integer) item[34]); if (item[35] != null) csev.setStatusDeactivatedDate(DateHelper.getDateFromObject(item[35])); if (item[36] != null) csev.setStatusWorkflow((Integer) item[36]); if (item[37] != null) csev.setStatusWorkflowDate(DateHelper.getDateFromObject(item[37])); // Code System Entity if (item[15] != null) cse.setId((Long) item[15]); if (item[16] != null) cse.setCurrentVersionId((Long) item[16]); // Entity Membership if (item[17] != null) csvem.setIsAxis((Boolean) item[17]); if (item[18] != null) csvem.setIsMainClass((Boolean) item[18]); // Translation addTranslationToConcept(csc, item); // Assoziation if (parameter.isLookForward()) addAssociationToEntityVersion(csev, item); if (traverseConceptsToRoot) { // Alle Elemente bis zum Root ermitteln (fr Suche) TraverseConceptToRoot traverse = new TraverseConceptToRoot(); TraverseConceptToRootRequestType requestTraverse = new TraverseConceptToRootRequestType(); requestTraverse.setLoginToken(parameter.getLoginToken()); requestTraverse.setCodeSystemEntity(new CodeSystemEntity()); CodeSystemEntityVersion csevRequest = new CodeSystemEntityVersion(); csevRequest.setVersionId(csev.getVersionId()); requestTraverse.getCodeSystemEntity() .setCodeSystemEntityVersions(new HashSet<CodeSystemEntityVersion>()); requestTraverse.getCodeSystemEntity().getCodeSystemEntityVersions().add(csevRequest); requestTraverse.setDirectionToRoot(true); //TraverseConceptToRootResponseType responseTraverse = traverse.TraverseConceptToRoot(requestTraverse, hb_session); // die Session bergeben, damit diese nicht geschlossen wird TraverseConceptToRootResponseType responseTraverse = traverse .TraverseConceptToRoot(requestTraverse, null); //logger.debug("responseTraverse: " + responseTraverse.getReturnInfos().getMessage()); if (responseTraverse.getReturnInfos().getStatus() == ReturnType.Status.OK) { if (csev.getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1() == null) { csev.setCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1( responseTraverse.getCodeSystemEntityVersionRoot() .getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1()); } else { csev.getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1() .addAll(responseTraverse.getCodeSystemEntityVersionRoot() .getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1()); } } } if (parameter.isLoadMetadata() != null && parameter.isLoadMetadata().booleanValue()) { String hql = "from CodeSystemMetadataValue mv " + " join fetch mv.metadataParameter mp " + " where codeSystemEntityVersionId=:csev_id"; Query query = hb_session.createQuery(hql); query.setLong("csev_id", csev.getVersionId()); csev.setCodeSystemMetadataValues(new HashSet<CodeSystemMetadataValue>(query.list())); // remove circle problems for (CodeSystemMetadataValue mv : csev.getCodeSystemMetadataValues()) { mv.setCodeSystemEntityVersion(null); mv.getMetadataParameter().setCodeSystem(null); mv.getMetadataParameter().setValueSet(null); mv.getMetadataParameter().setValueSetMetadataValues(null); mv.getMetadataParameter().setCodeSystemMetadataValues(null); mv.getMetadataParameter().setDescription(null); mv.getMetadataParameter().setMetadataParameterType(null); } } if (parameter.isLoadTranslation() != null && parameter.isLoadTranslation().booleanValue()) { String hql = "from CodeSystemConceptTranslation csct " + " where codeSystemEntityVersionId=:csev_id"; //+ " order by csct.languageCd"; Query query = hb_session.createQuery(hql); query.setLong("csev_id", csev.getVersionId()); csc.setCodeSystemConceptTranslations( new HashSet<CodeSystemConceptTranslation>(query.list())); // remove circle problems for (CodeSystemConceptTranslation trans : csc.getCodeSystemConceptTranslations()) { trans.setCodeSystemConcept(null); } } //logger.debug(csc.getCode()); //logger.debug("Type: " + csc.getClass().getCanonicalName()); /*Object[] o = (Object[]) csc; for(int i=0;i<o.length;++i) { //logger.debug(i + ": " + o.toString()); if(o[i] != null) { logger.debug(i + ": " + o[i].toString()); logger.debug(i + ": " + o[i].getClass().getCanonicalName()); } else logger.debug(i + ": null"); //for(int j=0;j<) }*/ csev.setCodeSystemConcepts(new HashSet<CodeSystemConcept>()); csev.getCodeSystemConcepts().add(csc); cse.setCodeSystemEntityVersions(new HashSet<CodeSystemEntityVersion>()); cse.getCodeSystemEntityVersions().add(csev); cse.setCodeSystemVersionEntityMemberships(new HashSet<CodeSystemVersionEntityMembership>()); cse.getCodeSystemVersionEntityMemberships().add(csvem); response.getCodeSystemEntity().add(cse); lastCodeSystemEntityVersionId = codeSystemEntityVersionId; anzahl++; } // Treffermenge prfen // Paging wird aktiviert if (anzahlGesamt.longValue() > maxPageSize) { response.setPagingInfos(new PagingResultType()); response.getPagingInfos().setMaxPageSize(maxPageSize); response.getPagingInfos().setPageIndex(pageIndex); response.getPagingInfos().setPageSize(String.valueOf(pageSize)); response.getPagingInfos().setCount(anzahlGesamt.intValue()); if (parameter != null && parameter.getPagingParameter() != null) { response.getPagingInfos().setMessage( "Paging wurde aktiviert, da die Treffermenge grer ist als die maximale Seitengre."); } } else { if ((maxPageSizeUserSpecific != -1) && anzahlGesamt.longValue() > maxPageSizeUserSpecific) { response.setPagingInfos(new PagingResultType()); response.getPagingInfos().setMaxPageSize(maxPageSizeUserSpecific); response.getPagingInfos().setPageIndex(pageIndex); response.getPagingInfos().setPageSize(String.valueOf(maxPageSizeUserSpecific)); response.getPagingInfos().setCount(anzahlGesamt.intValue()); if (parameter != null && parameter.getPagingParameter() != null) { response.getPagingInfos().setMessage( "Paging wurde aktiviert, da popUpSearchCS spezifische Seitenanzahl."); } } } // Status an den Aufrufer weitergeben response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.INFO); response.getReturnInfos().setStatus(ReturnType.Status.OK); response.getReturnInfos().setMessage("Konzepte erfolgreich gelesen, Anzahl: " + anzahl); response.getReturnInfos().setCount(anzahl); } else { response.setCodeSystemEntity(new LinkedList<CodeSystemEntity>()); response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.INFO); response.getReturnInfos().setStatus(ReturnType.Status.OK); response.getReturnInfos().setMessage("Keine Konzepte fr die Filterkriterien vorhanden"); response.getReturnInfos().setCount(0); } /*String hql = "select distinct csc from CodeSystemConcept csc"; hql += " join fetch csc.codeSystemEntityVersion csev"; hql += " join fetch csev.codeSystemEntity cse"; hql += " left outer join fetch csc.codeSystemConceptTranslations csct"; hql += " join fetch cse.codeSystemVersionEntityMemberships csvem"; //if (parameter.isLookForward()) //{ // hql += " join fetch csev.codeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1 ass1"; // hql += " join fetch csev.codeSystemEntityVersionAssociationsForCodeSystemEntityVersionId2 ass2"; //} // Parameter dem Helper hinzufgen // bitte immer den Helper verwenden oder manuell Parameter per Query.setString() hinzufgen, // sonst sind SQL-Injections mglich HQLParameterHelper parameterHelper = new HQLParameterHelper(); parameterHelper.addParameter("", "codeSystemVersionId", codeSystemVersionId); if (parameter != null && parameter.getCodeSystemEntity() != null) { if (parameter.getCodeSystemEntity().getCodeSystemVersionEntityMemberships() != null && parameter.getCodeSystemEntity().getCodeSystemVersionEntityMemberships().size() > 0) { CodeSystemVersionEntityMembership ms = (CodeSystemVersionEntityMembership) parameter.getCodeSystemEntity().getCodeSystemVersionEntityMemberships().toArray()[0]; parameterHelper.addParameter("csvem.", "isAxis", ms.getIsAxis()); parameterHelper.addParameter("csvem.", "isMainClass", ms.getIsMainClass()); } if (parameter.getCodeSystemEntity().getCodeSystemEntityVersions() != null && parameter.getCodeSystemEntity().getCodeSystemEntityVersions().size() > 0) { CodeSystemEntityVersion csev = (CodeSystemEntityVersion) parameter.getCodeSystemEntity().getCodeSystemEntityVersions().toArray()[0]; parameterHelper.addParameter("csev.", "statusDate", csev.getStatusDate()); if (csev.getCodeSystemConcepts() != null && csev.getCodeSystemConcepts().size() > 0) { CodeSystemConcept csc = (CodeSystemConcept) csev.getCodeSystemConcepts().toArray()[0]; parameterHelper.addParameter("csc.", "code", csc.getCode()); parameterHelper.addParameter("csc.", "term", csc.getTerm()); parameterHelper.addParameter("csc.", "termAbbrevation", csc.getTermAbbrevation()); parameterHelper.addParameter("csc.", "isPreferred", csc.getIsPreferred()); if (csc.getCodeSystemConceptTranslations() != null && csc.getCodeSystemConceptTranslations().size() > 0) { CodeSystemConceptTranslation csct = (CodeSystemConceptTranslation) csc.getCodeSystemConceptTranslations().toArray()[0]; parameterHelper.addParameter("csct.", "term", csct.getTerm()); parameterHelper.addParameter("csct.", "termAbbrevation", csct.getTermAbbrevation()); if (csct.getLanguageId() > 0) parameterHelper.addParameter("csct.", "languageId", csct.getLanguageId()); } } } } if (loggedIn == false) { parameterHelper.addParameter("csev.", "status", Definitions.STATUS_CODES.ACTIVE.getCode()); } // Parameter hinzufgen (immer mit AND verbunden) String where = parameterHelper.getWhere(""); hql += where; // immer neueste Version lesen hql += " AND csev.id=cse.currentVersionId"; hql += " ORDER BY csc.code"; // Suche begrenzen int pageSize = -1; int pageIndex = 0; boolean allEntries = false; if (parameter != null && parameter.getPagingParameter() != null) { // vorher aber noch die Gesamtanzahl berechnen //Integer count = (Integer) hb_session.createQuery("select count(*) from ....").uniqueResult(); if (parameter.getPagingParameter().isAllEntries() != null && parameter.getPagingParameter().isAllEntries().booleanValue() == true) { if (loggedIn) allEntries = true; } pageSize = parameter.getPagingParameter().getPageSize(); pageIndex = parameter.getPagingParameter().getPageIndex(); } // MaxResults mit Wert aus SysParam prfen if (traverseConceptsToRoot) { if (pageSize < 0 || (maxPageSizeSearch > 0 && pageSize > maxPageSizeSearch)) pageSize = maxPageSizeSearch; } else { if (pageSize < 0 || (maxPageSize > 0 && pageSize > maxPageSize)) pageSize = maxPageSize; } if (pageIndex < 0) pageIndex = 0; // Gesamt-Anzahl lesen String hqlCount = "select count(term) from CodeSystemConcept csc"; hqlCount += " join csc.codeSystemEntityVersion csev"; hqlCount += " join csev.codeSystemEntity cse"; hqlCount += " join cse.codeSystemVersionEntityMemberships csvem"; hqlCount += where; //hql = hql.replace("distinct csc", "count(term)"); logger.debug("HQL-Count: " + hqlCount); org.hibernate.Query q = hb_session.createQuery(hqlCount); // Die Parameter knnen erst hier gesetzt werden (bernimmt Helper) parameterHelper.applyParameter(q); long anzahlGesamt = (Long) q.uniqueResult(); // Anzahl zhlen Datenbank-Aufruf durchfhren //int anzahlGesamt = q.list().size(); //int anzahlGesamt = 100; // TODO Gesamt-Anzahl herausbekommen logger.debug("Anzahl Gesamt: " + anzahlGesamt); logger.debug("HQL: " + hql); // Query erstellen q = hb_session.createQuery(hql); // Die Parameter knnen erst hier gesetzt werden (bernimmt Helper) parameterHelper.applyParameter(q); //conceptList = (java.util.List<CodeSystemConcept>) q.list(); if (anzahlGesamt > 0) { //hb_session.setFlushMode(FlushMode.AUTO); ScrollableResults scrollResults = q.scroll(); int itCount = 0; if (scrollResults != null) { java.util.List<CodeSystemEntity> entityList = new LinkedList<CodeSystemEntity>(); if (pageIndex > 0 && allEntries == false && anzahlGesamt > 0) { // Vorspulen //if(pageSize * pageIndex < anzahlGesamt) // scrollResults.setRowNumber(pageSize * pageIndex); for (int i = 0; i < pageSize * pageIndex && i < anzahlGesamt; ++i) { if (scrollResults.next() == false) break; if (i % 50 == 0) { // wichtig, da Speicher sonst voll luft hb_session.flush(); hb_session.clear(); } } } //Iterator<CodeSystemConcept> iterator = conceptList.iterator(); //while (iterator.hasNext()) try { while (scrollResults.next()) { if (itCount >= pageSize && allEntries == false) break; if (itCount % 50 == 0) { // wichtig, da Speicher sonst voll luft //hb_session.flush(); hb_session.clear(); } itCount++; //CodeSystemConcept csc = iterator.next(); CodeSystemConcept csc = (CodeSystemConcept) scrollResults.get(0); // neues Entity generieren, damit nicht nachgeladen werden muss CodeSystemEntity entity = csc.getCodeSystemEntityVersion().getCodeSystemEntity(); CodeSystemEntityVersion csev = csc.getCodeSystemEntityVersion(); csev.setCodeSystemEntity(null); if (parameter.isLookForward()) { // Verbindungen suchen if (csev.getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId2() != null) { for (CodeSystemEntityVersionAssociation ass : csev.getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId2()) { ass.setCodeSystemEntityVersionByCodeSystemEntityVersionId1(null); ass.setCodeSystemEntityVersionByCodeSystemEntityVersionId2(null); ass.setAssociationType(null); } } if (csev.getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1() != null) { for (CodeSystemEntityVersionAssociation ass : csev.getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1()) { ass.setCodeSystemEntityVersionByCodeSystemEntityVersionId1(null); ass.setCodeSystemEntityVersionByCodeSystemEntityVersionId2(null); ass.setAssociationType(null); } } } else { if (traverseConceptsToRoot) { // Alle Elemente bis zum Root ermitteln (fr Suche) TraverseConceptToRoot traverse = new TraverseConceptToRoot(); TraverseConceptToRootRequestType requestTraverse = new TraverseConceptToRootRequestType(); requestTraverse.setLoginToken(parameter.getLoginToken()); requestTraverse.setCodeSystemEntity(new CodeSystemEntity()); CodeSystemEntityVersion csevRequest = new CodeSystemEntityVersion(); csevRequest.setVersionId(csev.getVersionId()); requestTraverse.getCodeSystemEntity().setCodeSystemEntityVersions(new HashSet<CodeSystemEntityVersion>()); requestTraverse.getCodeSystemEntity().getCodeSystemEntityVersions().add(csevRequest); requestTraverse.setDirectionToRoot(true); requestTraverse.setReadEntityDetails(false); TraverseConceptToRootResponseType responseTraverse = traverse.TraverseConceptToRoot(requestTraverse, hb_session); // die Session bergeben, damit diese nicht geschlossen wird //logger.debug("responseTraverse: " + responseTraverse.getReturnInfos().getMessage()); if (responseTraverse.getReturnInfos().getStatus() == ReturnType.Status.OK) { csev.setCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1( responseTraverse.getCodeSystemEntityVersionRoot().getCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1()); } else { csev.setCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1(null); } } else { csev.setCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId1(null); } csev.setCodeSystemEntityVersionAssociationsForCodeSystemEntityVersionId2(null); } csev.setCodeSystemMetadataValues(null); csev.setConceptValueSetMemberships(null); csev.setPropertyVersions(null); csev.setAssociationTypes(null); csc.setCodeSystemEntityVersion(null); logger.debug("Akt Code: " + csc.getCode() + ", " + csc.getTerm()); //Translations if (csc.getCodeSystemConceptTranslations() != null) { Iterator<CodeSystemConceptTranslation> itTrans = csc.getCodeSystemConceptTranslations().iterator(); while (itTrans.hasNext()) { CodeSystemConceptTranslation csct = itTrans.next(); csct.setCodeSystemConcept(null); } } csev.setCodeSystemConcepts(new HashSet<CodeSystemConcept>()); csev.getCodeSystemConcepts().add(csc); entity.setCodeSystemEntityVersions(new HashSet<CodeSystemEntityVersion>()); entity.getCodeSystemEntityVersions().add(csev); // M:N Verbindung zur Vokabular-Version (ohne nachladen) CodeSystemVersionEntityMembership ms = (CodeSystemVersionEntityMembership) entity.getCodeSystemVersionEntityMemberships().toArray()[0]; ms.setCodeSystemVersion(null); ms.setCodeSystemEntity(null); ms.setId(null); entity.setCodeSystemVersionEntityMemberships(new HashSet<CodeSystemVersionEntityMembership>()); entity.getCodeSystemVersionEntityMemberships().add(ms); entityList.add(entity); } } catch (org.hibernate.exception.GenericJDBCException ex) { logger.debug("Keine Eintraege"); ex.printStackTrace(); } int anzahl = 0; if (entityList != null) anzahl = entityList.size(); response.setCodeSystemEntity(entityList); // Treffermenge prfen if (anzahlGesamt > anzahl) { // Paging wird aktiviert response.setPagingInfos(new PagingResultType()); response.getPagingInfos().setMaxPageSize(maxPageSize); response.getPagingInfos().setPageIndex(pageIndex); response.getPagingInfos().setPageSize(pageSize); response.getPagingInfos().setCount((int) anzahlGesamt); if (parameter != null && parameter.getPagingParameter() != null) { response.getPagingInfos().setMessage("Paging wurde aktiviert, da die Treffermenge grer ist als die maximale Seitengre."); } //response.getPagingInfos().setMessage(); } //response.setPagingInfos(null); // Status an den Aufrufer weitergeben response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.INFO); response.getReturnInfos().setStatus(ReturnType.Status.OK); response.getReturnInfos().setMessage("Konzepte erfolgreich gelesen, Anzahl: " + anzahl); response.getReturnInfos().setCount(anzahl); } } else { response.setCodeSystemEntity(new LinkedList<CodeSystemEntity>()); response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.INFO); response.getReturnInfos().setStatus(ReturnType.Status.OK); response.getReturnInfos().setMessage("Keine Konzepte fr die Filterkriterien vorhanden"); response.getReturnInfos().setCount(0); }*/ // Hibernate-Block wird in 'finally' geschlossen, erst danach // Auswertung der Daten // Achtung: hiernach knnen keine Tabellen/Daten mehr nachgeladen werden //if(createHibernateSession) //hb_session.getTransaction().commit(); } catch (Exception e) { //if(createHibernateSession) //hb_session.getTransaction().rollback(); // Fehlermeldung an den Aufrufer weiterleiten response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.ERROR); response.getReturnInfos().setStatus(ReturnType.Status.FAILURE); response.getReturnInfos() .setMessage("Fehler bei 'ListCodeSystemConcepts', Hibernate: " + e.getLocalizedMessage()); LoggingOutput.outputException(e, this); } finally { // Transaktion abschlieen if (createHibernateSession) { hb_session.close(); } } } catch (Exception e) { // Fehlermeldung an den Aufrufer weiterleiten response.getReturnInfos().setOverallErrorCategory(ReturnType.OverallErrorCategory.ERROR); response.getReturnInfos().setStatus(ReturnType.Status.FAILURE); response.getReturnInfos().setMessage("Fehler bei 'ListCodeSystemConcepts': " + e.getLocalizedMessage()); LoggingOutput.outputException(e, this); } return response; }
From source file:de.tudarmstadt.ukp.lmf.api.Uby.java
License:Apache License
/** * Consumes a synset offset (in WordNet terminology) and a part-of-speech. Returns a * {@link List} of all {@link Sense} instances which are derived from the WordNets synset, * identified by the consumed arguments. * * @param partOfSpeech/*from w ww. j a v a2 s . com*/ * a string describing part of speech of the senses to be returned. * <p> * Valid values are: <list> * <li>"noun"</li> * <li>"verb"</li> * <li>"adverb"</li> * <li>"adjective"</li> </list> * * @param offset * string representation of the WordNets synset offset i.e. "14469014" * * @return senses derived from the WordNets synset, described by the consumed arguments * <p> * This method returns an empty list if the database accessed by this {@link Uby} * instance does not contain the specified sense. * * @throws UbyInvalidArgumentException * if the specified part of speech is not valid or one of consumed arguments is null * * @since 0.2.0 */ @Deprecated public List<Sense> wordNetSenses(String partOfSpeech, String offset) throws IllegalArgumentException { if (partOfSpeech == null) { throw new IllegalArgumentException("partOfSpeech is null"); } if (offset == null) { throw new IllegalArgumentException("offset is null"); } String refId = "[POS: noun] "; if (partOfSpeech.equals("adjective")) { refId = refId.replaceAll("noun", "adjective"); } else if (partOfSpeech.equals("adverb")) { refId = refId.replaceAll("noun", "adverb"); } else if (partOfSpeech.equals("verb")) { refId = refId.replaceAll("noun", "verb"); } else if (!partOfSpeech.equals("noun")) { throw new IllegalArgumentException("\"" + partOfSpeech + "\"" + " is not a valid part of speech. Only \"noun\", \"verb\", \"adverb\" or \"adjective\" are allowed"); } refId = refId + offset; /* * This direct query avoids the joining huge table done by using normal hibernate, while we just need the ID */ String sqlQueryString = "SELECT synsetId FROM MonolingualExternalRef WHERE externalReference = '" + refId.trim() + "'"; SQLQuery query = session.createSQLQuery(sqlQueryString); String ss_id = (String) query.uniqueResult(); if (ss_id == null) { return new ArrayList<Sense>(0); } Criteria criteria = session.createCriteria(Sense.class); criteria = criteria.add(Restrictions.sqlRestriction("synsetId='" + ss_id.trim() + "'")); @SuppressWarnings("unchecked") List<Sense> result = criteria.list(); return result; }
From source file:de.tudarmstadt.ukp.lmf.api.Uby.java
License:Apache License
/** * Consumes a sense key (in WordNet terminology) and a part-of-speech. Returns a {@link Sense} * instance which is derived from the WordNets sense, identified by the consumed arguments. * * @param partOfSpeech//from w w w .j av a2 s . c o m * a string describing part of speech of the sense to be returned. * <p> * Valid values are: <list> * <li>"noun"</li> * <li>"verb"</li> * <li>"adverb"</li> * <li>"adjective"</li> </list> * * @param senseKey * string representation of the WordNets identifier of a sense i.e. "enter%2:33:00::" * * @return UBY-LMF sense derived from the WordNets word, described by the consumed arguments * <p> * This method returns null if the database accessed by this {@link Uby} instance does * not contain the specified sense. * * @throws UbyInvalidArgumentException * if the specified part of speech is not valid or one of the consumed arguments is * null * * @since 0.2.0 */ @Deprecated public Sense wordNetSense(String partOfSpeech, String senseKey) throws IllegalArgumentException { if (partOfSpeech == null) { throw new IllegalArgumentException("partOfSpeech is null"); } if (senseKey == null) { throw new IllegalArgumentException("senseKey is null"); } String refId = "[POS: noun] "; if (partOfSpeech.equals("adjective")) { refId = refId.replaceAll("noun", "adjective"); } else if (partOfSpeech.equals("adverb")) { refId = refId.replaceAll("noun", "adverb"); } else if (partOfSpeech.equals("verb")) { refId = refId.replaceAll("noun", "verb"); } else if (!partOfSpeech.equals("noun")) { throw new IllegalArgumentException("\"" + partOfSpeech + "\"" + " is not a valid part of speech. Only \"noun\", \"verb\", \"adverb\" or \"adjective\" are allowed"); } refId = refId + senseKey; /* * This direct query avoids the joining huge table done by using normal hibernate, while we just need the ID */ String sqlQueryString = "SELECT senseId FROM MonolingualExternalRef WHERE externalReference = '" + refId.trim() + "'"; SQLQuery query = session.createSQLQuery(sqlQueryString); String ss_id = (String) query.uniqueResult(); if (ss_id == null) { return null; } Criteria criteria = session.createCriteria(Sense.class); criteria = criteria.add(Restrictions.sqlRestriction("senseId='" + ss_id.trim() + "'")); Sense result = (Sense) criteria.uniqueResult(); return result; }
From source file:edu.vt.vbi.patric.dao.DBDisease.java
License:Apache License
public int getVFDBBreadCrumbCount(Map<String, String> key) { String sql = getVFDBSQL(key, "breadcrumb"); Session session = factory.getCurrentSession(); session.beginTransaction();/*w w w . jav a 2 s. com*/ SQLQuery q = session.createSQLQuery(sql).addScalar("cnt", Hibernate.INTEGER); q = bindVFDBSQLValues(q, key); q.setCacheable(true); Object obj = q.uniqueResult(); session.getTransaction().commit(); return Integer.parseInt(obj.toString()); }
From source file:edu.vt.vbi.patric.dao.DBDisease.java
License:Apache License
public int getVFDBFeatureBreadCrumbCount(Map<String, String> key) { String sql = getVFDBFeatureSQL(key, "breadcrumb"); Session session = factory.getCurrentSession(); session.beginTransaction();/* w ww . jav a 2 s.c om*/ SQLQuery q = session.createSQLQuery(sql).addScalar("cnt", Hibernate.INTEGER); q = bindVFDBFeatureSQLValues(q, key); q.setCacheable(true); Object obj = q.uniqueResult(); session.getTransaction().commit(); return Integer.parseInt(obj.toString()); }
From source file:edu.vt.vbi.patric.dao.DBDisease.java
License:Apache License
public int getVFDBCount(Map<String, String> key) { String sql = getVFDBSQL(key, "count"); sql += " )";//from w w w .jav a2s.co m Session session = factory.getCurrentSession(); session.beginTransaction(); SQLQuery q = session.createSQLQuery(sql).addScalar("cnt", Hibernate.INTEGER); q = bindVFDBSQLValues(q, key); q.setCacheable(true); Object obj = q.uniqueResult(); session.getTransaction().commit(); return Integer.parseInt(obj.toString()); }
From source file:edu.vt.vbi.patric.dao.DBDisease.java
License:Apache License
public int getVFDBFeatureCount(Map<String, String> key) { String sql = getVFDBFeatureSQL(key, "count"); sql += " )";//from w ww.j a v a2 s .com Session session = factory.getCurrentSession(); session.beginTransaction(); SQLQuery q = session.createSQLQuery(sql).addScalar("cnt", Hibernate.INTEGER); q = bindVFDBFeatureSQLValues(q, key); q.setCacheable(true); Object obj = q.uniqueResult(); session.getTransaction().commit(); return Integer.parseInt(obj.toString()); }
From source file:edu.vt.vbi.patric.dao.DBDisease.java
License:Apache License
public int getCTDBreadCrumbCount(Map<String, String> key) { String sql = getCTDSQL(key, "breadcrumb"); Session session = factory.getCurrentSession(); session.beginTransaction();// w ww .j ava 2s . com SQLQuery q = session.createSQLQuery(sql).addScalar("cnt", Hibernate.INTEGER); q = bindSQLValues(q, key); q.setCacheable(true); Object obj = q.uniqueResult(); session.getTransaction().commit(); return Integer.parseInt(obj.toString()); }
From source file:edu.vt.vbi.patric.dao.DBDisease.java
License:Apache License
public int getCTDCount(Map<String, String> key) { String sql = getCTDSQL(key, "count"); Session session = factory.getCurrentSession(); session.beginTransaction();/* w w w.j av a2 s .com*/ SQLQuery q = session.createSQLQuery(sql).addScalar("cnt", Hibernate.INTEGER); q = bindSQLValues(q, key); q.setCacheable(true); Object obj = q.uniqueResult(); session.getTransaction().commit(); return Integer.parseInt(obj.toString()); }