List of usage examples for org.hibernate SQLQuery addScalar
SQLQuery<T> addScalar(String columnAlias, Type type);
From source file:com.yougou.api.service.impl.ApiKeyServiceImpl.java
@Override public ApiKey randomSeekTestApiKey() throws Exception { Session session = null;//from w w w . j av a2 s. com try { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append(" select "); sqlBuilder.append(" t1.app_key as appKey, t1.app_secret as appSecret "); sqlBuilder.append(" from "); sqlBuilder.append(" tbl_merchant_api_key t1 "); sqlBuilder.append(" inner join "); sqlBuilder.append(" tbl_merchant_api_key_metadata t2 "); sqlBuilder.append(" on(t1.id = t2.key_id) "); sqlBuilder.append(" left join "); sqlBuilder.append(" ( "); sqlBuilder.append(apiKeyDao.getApiKeyPotentialCustomersSqlStatement()); sqlBuilder.append(" ) t3 "); sqlBuilder.append(" on(t2.metadata_val = t3.metadata_val) "); sqlBuilder.append(" where "); sqlBuilder.append(" t3.metadata_tag like '%%' "); session = apiKeyDao.getHibernateSession(); SQLQuery sqlQuery = session.createSQLQuery(sqlBuilder.toString()); sqlQuery.addScalar("appKey", Hibernate.STRING); sqlQuery.addScalar("appSecret", Hibernate.STRING); sqlQuery.setResultTransformer(Transformers.aliasToBean(ApiKey.class)); List<ApiKey> list = sqlQuery.list(); return list.size() == 0 ? null : list.get(new Random().nextInt(list.size())); } finally { apiKeyDao.releaseHibernateSession(session); } }
From source file:com.yougou.api.service.impl.ApiKeyServiceImpl.java
/** * ?metadataValApiKeyMetadata?//from w w w. j a v a2 s .co m * @param metadataVal * @return * @throws Exception */ @Override public ApiKeyMetadata queryApiKeyByMetadataVal(String metadataVal) throws Exception { StringBuilder sqlBuilder = new StringBuilder(); sqlBuilder.append(" SELECT km.metadata_key as metadataKey,km.metadata_val as metadataVal,km.key_id as id "); sqlBuilder.append(" FROM tbl_merchant_api_key_metadata km "); sqlBuilder.append(" WHERE km.metadata_key = 'MERCHANTS' "); sqlBuilder.append(" AND km.metadata_val = ? "); Session session = null; try { session = apiKeyDao.getHibernateSession(); SQLQuery sqlQuery = session.createSQLQuery(sqlBuilder.toString()); sqlQuery.setParameter(0, metadataVal); sqlQuery.addScalar("metadataKey", customAppType); sqlQuery.addScalar("metadataVal", Hibernate.STRING); sqlQuery.addScalar("id", Hibernate.STRING); sqlQuery.setResultTransformer(Transformers.aliasToBean(ApiKeyMetadata.class)); List<ApiKeyMetadata> list = sqlQuery.list(); return list.size() == 0 ? null : list.get(0); } finally { apiKeyDao.releaseHibernateSession(session); } }
From source file:com.zdtx.ifms.specific.service.monitor.IpCamManager.java
/** * Get IP Camera's users//from www .j ava2 s .c o m * @return CamUserVO */ @SuppressWarnings("unchecked") public CamUserVO getCamUsers() { String sql = "SELECT A.USERNAME AS ADMINNAME, A.USERPASS AS ADMINPASS, " + "B.USERNAME AS OPERATORNAME, B.USERPASS AS OPERATORPASS, " + "C.USERNAME AS VIEWERNAME, C.USERPASS AS VIEWERPASS " + "FROM T_CORE_CAM_USER A, T_CORE_CAM_USER B, T_CORE_CAM_USER C " + "WHERE A.AUTHLEVEL = 0 AND B.AUTHLEVEL = 1 AND C.AUTHLEVEL = 2"; SQLQuery query = dao.getSession().createSQLQuery(sql); query.addScalar("adminName", StringType.INSTANCE); query.addScalar("adminPass", StringType.INSTANCE); query.addScalar("operatorName", StringType.INSTANCE); query.addScalar("operatorPass", StringType.INSTANCE); query.addScalar("viewerName", StringType.INSTANCE); query.addScalar("viewerPass", StringType.INSTANCE); query.setResultTransformer(Transformers.aliasToBean(CamUserVO.class)); query.setCacheable(true); CamUserVO camUserVO = ((List<CamUserVO>) query.list()).get(0); return camUserVO; }
From source file:dao.ParametrDao.java
public List<Object[]> getParamsAndNeedsFromCat(Long catId) { String sql = "select p.*,l.req_type from param_category_link l left join parametr p on l.parametr_id=p.parametr_id where l.category_id=:catId order by p.name asc"; SQLQuery query = getCurrentSession().createSQLQuery(sql); query.addEntity("p", Parametr.class); query.addScalar("req_type", StandardBasicTypes.INTEGER); query.setParameter("catId", catId); return query.list(); }
From source file:daoImpl.GroupsDAOImpl.java
@Override public List<SearchResult> findNearestGroups(float lati, float longi, float maxDistance) { Session session = sFac.openSession(); SQLQuery getDistances = session.createSQLQuery("Select groups.group_id, " + "(6371 * acos( cos( radians(:lati )) * cos( radians( groups.latitude ) ) * cos( radians( groups.longitude ) - radians(:longi) ) + sin( radians(:lati) ) * sin( radians( groups.latitude ) ) ) ) as distance " + "from groups having distance < :maxDistance order by distance;"); getDistances.setParameter("lati", lati); getDistances.setParameter("longi", longi); getDistances.setParameter("maxDistance", maxDistance); getDistances.addScalar("group_id", StandardBasicTypes.INTEGER); getDistances.addScalar("distance", StandardBasicTypes.FLOAT); List<Object[]> closestGroups = getDistances.list(); if (closestGroups.isEmpty()) return new ArrayList<>(); ArrayList groupsToGet = new ArrayList<>(); for (Object[] r : closestGroups) { int i = (int) r[0]; groupsToGet.add(i);/*from w w w . j av a2 s. com*/ } Query getGroups = session.createQuery( "from Groups G left join fetch G.tagses left join fetch G.usersGroupses where G.groupId in (:ids)"); getGroups.setParameterList("ids", groupsToGet); getGroups.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Groups> groupsFound = getGroups.list(); ArrayList<SearchResult> results = new ArrayList<>(); for (int i = 0; i < groupsFound.size(); i++) { SearchResult s = new SearchResult(groupsFound.get(i), (float) (closestGroups.get(i)[1])); results.add(s); } session.close(); return results; }
From source file:daoImpl.GroupsDAOImpl.java
@Override public List<SearchResult> findNearestGroupsByName(float lati, float longi, float maxDistance, String searchTerm) {/* w w w .j av a 2s. c om*/ Session session = sFac.openSession(); SQLQuery getDistances = session.createSQLQuery("Select groups.group_id, " + "(6371 * acos( cos( radians(:lati )) * cos( radians( groups.latitude ) ) * cos( radians( groups.longitude ) - radians(:longi) ) + sin( radians(:lati) ) * sin( radians( groups.latitude ) ) ) ) as distance " + "from groups where groups.groupname like concat('%', :name , '%') having distance < :maxDistance order by distance;"); getDistances.setParameter("lati", lati); getDistances.setParameter("longi", longi); getDistances.setParameter("maxDistance", maxDistance); getDistances.setParameter("name", searchTerm); getDistances.addScalar("group_id", StandardBasicTypes.INTEGER); getDistances.addScalar("distance", StandardBasicTypes.FLOAT); List<Object[]> closestGroups = getDistances.list(); if (closestGroups.isEmpty()) return new ArrayList<>(); ArrayList groupsToGet = new ArrayList<>(); for (Object[] r : closestGroups) { int i = (int) r[0]; groupsToGet.add(i); } Query getGroups = session.createQuery( "from Groups G left join fetch G.tagses left join fetch G.usersGroupses where G.groupId in (:ids)"); getGroups.setParameterList("ids", groupsToGet); getGroups.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Groups> groupsFound = getGroups.list(); ArrayList<SearchResult> results = new ArrayList<>(); for (int i = 0; i < groupsFound.size(); i++) { SearchResult s = new SearchResult(groupsFound.get(i), (float) (closestGroups.get(i)[1])); results.add(s); } session.close(); return results; }
From source file:daoImpl.GroupsDAOImpl.java
@Override public List<SearchResult> findNearestGroupsByDesc(float lati, float longi, float maxDistance, String description) {/* w ww. ja v a 2s . c o m*/ Session session = sFac.openSession(); SQLQuery getDistances = session.createSQLQuery("Select groups.group_id, " + "(6371 * acos( cos( radians(:lati )) * cos( radians( groups.latitude ) ) * cos( radians( groups.longitude ) - radians(:longi) ) + sin( radians(:lati) ) * sin( radians( groups.latitude ) ) ) ) as distance " + "from groups where groups.description like concat('%', :name , '%') having distance < :maxDistance order by distance;"); getDistances.setParameter("lati", lati); getDistances.setParameter("longi", longi); getDistances.setParameter("maxDistance", maxDistance); getDistances.setParameter("name", description); getDistances.addScalar("group_id", StandardBasicTypes.INTEGER); getDistances.addScalar("distance", StandardBasicTypes.FLOAT); List<Object[]> closestGroups = getDistances.list(); if (closestGroups.isEmpty()) return new ArrayList<>(); ArrayList groupsToGet = new ArrayList<>(); for (Object[] r : closestGroups) { int i = (int) r[0]; groupsToGet.add(i); } Query getGroups = session.createQuery( "from Groups G left join fetch G.tagses left join fetch G.usersGroupses where G.groupId in (:ids)"); getGroups.setParameterList("ids", groupsToGet); getGroups.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Groups> groupsFound = getGroups.list(); ArrayList<SearchResult> results = new ArrayList<>(); for (int i = 0; i < groupsFound.size(); i++) { SearchResult s = new SearchResult(groupsFound.get(i), (float) (closestGroups.get(i)[1])); results.add(s); } session.close(); return results; }
From source file:daoImpl.GroupsDAOImpl.java
@Override public List<SearchResult> findNearestGroupsByTag(float latitude, float longitude, float maxDistance, String tag) {//from ww w . j ava2 s . c o m Session session = sFac.openSession(); SQLQuery query = session.createSQLQuery( "Select groups.group_id, (6371 * acos( cos( radians(:lati )) * cos( radians( groups.latitude ) ) * cos( radians( groups.longitude ) - radians(:longi) ) + sin( radians(:lati) ) * sin( radians( groups.latitude ) ) ) ) as distance from groups join groups_tags on (groups.group_id=groups_tags.group_id_fk) join tags on (groups_tags.tag_id_fk=tags.tag_id) where tags.tag_name = :tagname having distance < :dist order by distance;"); query.setParameter("lati", latitude); query.setParameter("longi", longitude); query.setParameter("tagname", tag); query.setParameter("dist", maxDistance); query.addScalar("group_id", StandardBasicTypes.INTEGER); query.addScalar("group_id", StandardBasicTypes.FLOAT); List<Object[]> closestGroups = query.list(); if (closestGroups.isEmpty()) return new ArrayList<>(); ArrayList groupsToGet = new ArrayList<>(); for (Object[] r : closestGroups) { int i = (int) r[0]; groupsToGet.add(i); } Query getGroups = session.createQuery( "from Groups G left join fetch G.tagses left join fetch G.usersGroupses where G.groupId in (:ids)"); getGroups.setParameterList("ids", groupsToGet); getGroups.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Groups> groupsFound = getGroups.list(); ArrayList<SearchResult> results = new ArrayList<>(); for (int i = 0; i < groupsFound.size(); i++) { SearchResult s = new SearchResult(groupsFound.get(i), (float) (closestGroups.get(i)[1])); results.add(s); } session.close(); return results; }
From source file:de.codesourcery.eve.skills.db.dao.InventoryTypeDAO.java
License:Apache License
@Override public List<InventoryType> getInventoryTypes(final MarketGroup group) { if (group == null) { throw new IllegalArgumentException("group must not be NULL"); }/*from ww w . j a va2s. c o m*/ final List<InventoryType> cached = typeByMarketGroupID.get(group.getId()); if (cached != null) { return new ArrayList<>(cached); } return execute(new HibernateCallback<List<InventoryType>>() { @Override public List<InventoryType> doInSession(Session session) { final SQLQuery query = session .createSQLQuery("SELECT typeID FROM invTypes WHERE marketGroupID = :marketGroupId"); query.setParameter("marketGroupId", group.getId()); query.addScalar("typeID", new LongType()); final List<InventoryType> result = getInventoryTypesByIDs(query.list()); typeByMarketGroupID.putIfAbsent(group.getId(), new ArrayList<>(result)); return result; } }); }
From source file:de.codesourcery.eve.skills.db.dao.InventoryTypeDAO.java
License:Apache License
@Override public List<InventoryType> getInventoryTypesWithBlueprints(final MarketGroup group) { return execute(new HibernateCallback<List<InventoryType>>() { @Override/*from w ww. j a va 2s.co m*/ public List<InventoryType> doInSession(Session session) { final SQLQuery query = session .createSQLQuery("SELECT i.typeID FROM invTypes i , invBlueprintTypes bp WHERE " + "i.marketGroupID = :marketGroupId AND bp.productTypeID = i.typeID"); query.setParameter("marketGroupId", group.getId()); query.addScalar("typeID", new LongType()); return getInventoryTypesByIDs(query.list()); } }); }