public int getSchemaVersion() throws DataAccessException { return (Integer) getHibernateTemplate().execute((HibernateCallback) session -> session.createSQLQuery("select max(change_number) from changelog").uniqueResult()); } }
private long modificationAfter(final long id, final MaterialInstance materialInstance) { BigInteger result = (BigInteger) getHibernateTemplate().execute((HibernateCallback) session -> { String sql = "SELECT id " + " FROM modifications " + " WHERE materialId = ? " + " AND id > ?" + " ORDER BY id" + " LIMIT 1"; SQLQuery query = session.createSQLQuery(sql); query.setLong(0, materialInstance.getId()); query.setLong(1, id); return query.uniqueResult(); }); return result == null ? id : result.longValue(); }
private Long findLastBuiltModificationId(final Pipeline pipeline, final MaterialInstance materialInstance) { BigInteger result = (BigInteger) getHibernateTemplate().execute((HibernateCallback) session -> { String sql = "SELECT fromRevisionId " + " FROM pipelineMaterialRevisions pmr " + " INNER JOIN pipelines p on p.id = pmr.pipelineId " + " WHERE materialId = ? " + " AND p.name = ? " + " AND pipelineId < ? " + " ORDER BY pmr.id DESC" + " LIMIT 1"; SQLQuery query = session.createSQLQuery(sql); query.setLong(0, materialInstance.getId()); query.setString(1, pipeline.getName()); query.setLong(2, pipeline.getId()); return query.uniqueResult(); }); return result == null ? null : result.longValue(); }
@Test public void testRegisteredNamedSQLQueryWithScalar() { final NamedSQLQueryDefinitionBuilder builder = new NamedSQLQueryDefinitionBuilder(); builder.setName("namedQuery"); builder.setQuery("select count(*) AS c from ORGANIZATION"); builder.setQueryReturns(new NativeSQLQueryReturn[1]); sessionFactory().registerNamedSQLQueryDefinition("namedQuery", builder.createNamedQueryDefinition()); final Session s = openSession(); s.beginTransaction(); final SQLQuery query = (SQLQuery) s.getNamedQuery("namedQuery"); query.addScalar("c"); final Number result = (Number) query.uniqueResult(); s.getTransaction().commit(); s.close(); assertNotNull(result); assertTrue(0 == result.intValue()); }
private EntityMapEnum assertFindEntityMapEnum( EntityMapEnum expected, String query, String queryWithParam, Object param, String nativeQueryCheck) { assertNotEquals( 0, expected.id ); assertNotNull( param ); Session session = openNewSession(); EntityMapEnum found = (EntityMapEnum) session.createQuery( query ).uniqueResult(); //find assetEntityMapEnumEquals( expected, found ); // find with parameter found = (EntityMapEnum) session.createQuery( queryWithParam ) .setParameter( "param", param ).uniqueResult(); assetEntityMapEnumEquals( expected, found ); //native query check SQLQuery sqlQuery = session.createSQLQuery( nativeQueryCheck ); sqlQuery.setParameter( "idEntityMapEnum", expected.id ); Object o = sqlQuery.uniqueResult(); assertNotNull( o ); return found; }
query.setString(1, "games"); CompositeIdId id2 = (CompositeIdId) query.uniqueResult(); check(id, id2);
public Long latestModificationRunByPipeline(final CaseInsensitiveString pipelineName, final Material material) { final long materialId = findMaterialInstance(material).getId(); String key = cacheKeyForLatestPmrForPipelineKey(materialId, pipelineName.toLower()); Long modificationId = (Long) goCache.get(key); if (modificationId == null) { synchronized (key) { modificationId = (Long) goCache.get(key); if (modificationId == null) { modificationId = (Long) getHibernateTemplate().execute((HibernateCallback) session -> { SQLQuery sqlQuery = session.createSQLQuery("SELECT MAX(pmr.toRevisionId) toRevisionId " + "FROM (SELECT torevisionid, pipelineid FROM pipelineMaterialRevisions WHERE materialid = :material_id) AS pmr\n" + "INNER JOIN pipelines p ON ( p.name = :pipeline_name AND p.id = pmr.pipelineId)"); sqlQuery.setParameter("material_id", materialId); sqlQuery.setParameter("pipeline_name", pipelineName.toString()); sqlQuery.addScalar("toRevisionId", new LongType()); return sqlQuery.uniqueResult(); }); if (modificationId == null) { modificationId = -1L; } goCache.put(key, modificationId); } } } return modificationId; }
public Long countBySql(String sql, Map<String, Object> params) { SQLQuery sqlQuery = this.getCurrentSession().createSQLQuery(sql); if (params != null && !params.isEmpty()) { for (String key : params.keySet()) { sqlQuery.setParameter(key, params.get(key)); } } return (Long) sqlQuery.uniqueResult(); }
public Long countBySql(String sql) { SQLQuery sqlQuery = this.getCurrentSession().createSQLQuery(sql); return ((BigInteger) sqlQuery.uniqueResult()).longValue(); }
@Override public Long countBySql(String sql, Object[] params, Type[] types) { SQLQuery query = this.getCurrentSession().createSQLQuery(sql); query.setParameters(params, types); return ((BigInteger) query.uniqueResult()).longValue(); }
/** * @see org.openmrs.api.db.PersonDAO#getSavedPersonAttributeTypeName(org.openmrs.PersonAttributeType) */ @Override public String getSavedPersonAttributeTypeName(PersonAttributeType personAttributeType) { SQLQuery sql = sessionFactory.getCurrentSession().createSQLQuery( "select name from person_attribute_type where person_attribute_type_id = :personAttributeTypeId"); sql.setInteger("personAttributeTypeId", personAttributeType.getId()); return (String) sql.uniqueResult(); }
/** * @see org.openmrs.api.db.ConceptDAO#getSavedConceptDatatype(org.openmrs.Concept) */ @Override public ConceptDatatype getSavedConceptDatatype(Concept concept) { SQLQuery sql = sessionFactory.getCurrentSession().createSQLQuery( "select datatype.* from " + "concept_datatype datatype, " + "concept concept " + "where " + "datatype.concept_datatype_id = concept.datatype_id " + "and concept.concept_id=:conceptId") .addEntity(ConceptDatatype.class); sql.setInteger("conceptId", concept.getConceptId()); return (ConceptDatatype) sql.uniqueResult(); }
/** * @see org.openmrs.api.db.EncounterDAO#getSavedEncounterDatetime(org.openmrs.Encounter) */ @Override public Date getSavedEncounterDatetime(Encounter encounter) { //Usages of this method currently are internal and don't require a flush //Otherwise we end up with premature flushes of Immutable types like Obs //that are associated to the encounter before we void and replace them Session session = sessionFactory.getCurrentSession(); FlushMode flushMode = session.getFlushMode(); session.setFlushMode(FlushMode.MANUAL); try { SQLQuery sql = session .createSQLQuery("select encounter_datetime from encounter where encounter_id = :encounterId"); sql.setInteger("encounterId", encounter.getEncounterId()); return (Date) sql.uniqueResult(); } finally { session.setFlushMode(flushMode); } }
/** * @see org.openmrs.api.db.ObsDAO#getSavedStatus(org.openmrs.Obs) */ @Override public Obs.Status getSavedStatus(Obs obs) { // avoid premature flushes when this internal method is called from inside a service method Session session = sessionFactory.getCurrentSession(); FlushMode flushMode = session.getFlushMode(); session.setFlushMode(FlushMode.MANUAL); try { SQLQuery sql = session.createSQLQuery("select status from obs where obs_id = :obsId"); sql.setInteger("obsId", obs.getObsId()); return Obs.Status.valueOf((String) sql.uniqueResult()); } finally { session.setFlushMode(flushMode); } }
/** * @see org.openmrs.api.db.EncounterDAO#getSavedEncounterLocation(org.openmrs.Encounter) */ @Override public Location getSavedEncounterLocation(Encounter encounter) { Session session = sessionFactory.getCurrentSession(); FlushMode flushMode = session.getFlushMode(); session.setFlushMode(FlushMode.MANUAL); try { SQLQuery sql = session.createSQLQuery("select location_id from encounter where encounter_id = :encounterId"); sql.setInteger("encounterId", encounter.getEncounterId()); return Context.getLocationService().getLocation((Integer) sql.uniqueResult()); } finally { session.setFlushMode(flushMode); } }
String sql = "select count(*) from table where ..."; BigDecimal count = (BigDecimal) hibernateTemplate.execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { SQLQuery query = session.createSQLQuery(sql); return (BigDecimal) query.uniqueResult(); }}); return count;
BigDecimal count = (BigDecimal) hibernateTemplate.execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { SQLQuery query = session.createSQLQuery(sql); return query.uniqueResult(); }}); return count;
String sql = "select count(*) as result from table"; BigDecimal count = (BigDecimal) ht.execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { SQLQuery query = session.createSQLQuery(sql); // Add scalar to avoid bug in Hibernate query cache. query.addScalar("result", Hibernate.BIG_DECIMAL); return query.uniqueResult(); } });
public Integer getLatestProcessVersion(String name) { SQLQuery query = getSession().createSQLQuery(QUERY_VERSION + " where name = ?"); query.setParameter(0, name); Object result = query.uniqueResult(); return new Long(ClassHelper.castLong(result)).intValue(); }
protected Long generateUniqueId() { final SessionFactoryImpl ss = entityManager.unwrap(SessionFactoryImpl.class); final String sql = ss.getDialect().getSequenceNextValString("ID_SEQ"); final SQLQuery q = currentSession().createSQLQuery(sql); return ((BigInteger) q.uniqueResult()).longValue(); }