@Override @Transactional(readOnly = true) public List<Customer> findAll() { SQLQuery allCustomersQuery = qdslTemplate.newSqlQuery().from(qCustomer) .leftJoin(qCustomer._addressCustomerRef, qAddress); return qdslTemplate.query(allCustomersQuery, new CustomerListExtractor(), customerAddressProjection); }
private Customer findOne(Predicate predicate) { SQLQuery oneCustomerQuery = qdslTemplate.newSqlQuery().from(qCustomer) .leftJoin(qCustomer._addressCustomerRef, qAddress).where(predicate); return qdslTemplate.queryForObject(oneCustomerQuery, new CustomerExtractor(), customerAddressProjection); }
public List<IssueType> getEditableSubTaskIssueTypes() { final List<String> ids = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery() .from(ISSUE_TYPE) .where(ISSUE_TYPE.style.eq(SubTaskManager.SUB_TASK_ISSUE_TYPE_STYLE)) .list(bean(ISSUE_TYPE.id))); final ImmutableList.Builder<IssueType> listBuilder = ImmutableList.builder(); ids.stream().map(this::getIssueType).forEach(listBuilder::add); return listBuilder.build(); }
public ConstantsCache<Resolution> get() { final List<ResolutionDTO> resolutionList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(RESOLUTION) .orderBy(RESOLUTION.sequence.asc()).list(RESOLUTION)); final ImmutableMap.Builder<String, Resolution> builder = ImmutableMap.builder(); resolutionList.stream().map(issueConstantFactory::createResolution).forEach(r -> builder.put(r.getId(), r)); return new ConstantsCache<>(builder.build()); } }
public ConstantsCache<Priority> get() { final List<PriorityDTO> priorityList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(PRIORITY) .orderBy(PRIORITY.sequence.asc()).list(PRIORITY)); final ImmutableMap.Builder<String, Priority> builder = ImmutableMap.builder(); priorityList.stream().map(issueConstantFactory::createPriority).forEach(p -> builder.put(p.getId(), p)); return new ConstantsCache<>(builder.build()); } }
public ConstantsCache<Status> get() { final List<StatusDTO> statusList = dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery().from(STATUS) .orderBy(STATUS.sequence.asc()).list(STATUS)); final ImmutableMap.Builder<String, Status> builder = ImmutableMap.builder(); statusList.stream().map(issueConstantFactory::createStatus).forEach(r -> builder.put(r.getId(), r)); return new ConstantsCache<>(builder.build()); } }
private boolean hasRow() { SQLQuery query = new SQLQuery(connection, configuration).from(entity); addKeyConditions(query); return query.exists(); }
@Override public Set<Worklog> getWorklogsForIds(final Set<Long> worklogIds, final int maxResults) { return dbConnectionManager.executeQuery(dbConnection -> dbConnection.newSqlQuery() .from(WORKLOG) .leftJoin(QProjectRole.PROJECT_ROLE) .on(QProjectRole.PROJECT_ROLE.id.eq(WORKLOG.rolelevel)) .where(WORKLOG.id.in(worklogIds)) .limit(maxResults) .list(WORKLOG_ALIASED_PROJECT_ROLE_TUPLE) ).stream() .map(queryDSLWorklogFactory::createWorklogWithAliasedIdColumn) .collect(Collectors.toSet()); }
@Override public long getCountForWorklogsRestrictedByGroup(final String groupName) { checkArgument(groupName != null, "You must provide a non null group name."); return dbConnectionManager.executeQuery(dc -> dc.newSqlQuery() .from(WORKLOG) .where(WORKLOG.grouplevel.eq(groupName)) .count()); }
@VisibleForTesting List<Integer> findDowngradeTasksToRun() throws DowngradeException { // Get all upgrade tasks that have run from the UpgradeHistory table in the DB final List<UpgradeHistoryDTO> upgradeHistoryItems = dbConnectionManager.executeQuery( dbConnection -> dbConnection.newSqlQuery() .from(QUpgradeHistory.UPGRADE_HISTORY) .list(QUpgradeHistory.UPGRADE_HISTORY) ); return DowngradeUtil.findDowngradeTasksToRun(upgradeHistoryItems, buildUtilsInfo.getApplicationBuildNumber()); }
@Override public Optional<Long> getResourceId(final String principal) { return querydslSupport.execute((connection, configuration) -> { QSimpleSubject qSimpleSubject = QSimpleSubject.simpleSubject; Long resourceId = new SQLQuery(connection, configuration) .from(qSimpleSubject) .where(qSimpleSubject.principal.eq(principal)) .singleResult(qSimpleSubject.resourceId); return Optional.ofNullable(resourceId); }); }
@Override public long getCountForWorklogsRestrictedByRole(final Long roleId) { checkNotNull(roleId, "You must provide a non null role id."); return dbConnectionManager.executeQuery(dc -> dc.newSqlQuery() .from(WORKLOG) .where(WORKLOG.rolelevel.eq(roleId)) .count()); }
private boolean lockOnResource(final Connection connection, final Configuration configuration, final long resourceId) { SQLQuery query = new SQLQuery(connection, configuration); QResource resource = QResource.resource; List<Long> results = query.from(resource).where(resource.resourceId.eq(resourceId)).forUpdate() .list(resource.resourceId); return !(results.size() == 0); }
/** * Note: transaction must be provided to this method. */ private void lockAuditApplication(final long applicationId) { querydslSupport.execute((connection, configuration) -> { QApplication qApplication = QApplication.application; return new SQLQuery(connection, configuration) .from(qApplication) .where(qApplication.applicationId.eq(applicationId)) .forUpdate(); }); }
@Override public String readEncryptedCredential(final String principal) { return querydslSupport.execute((connection, configuration) -> { QSimpleSubject qSimpleSubject = QSimpleSubject.simpleSubject; return new SQLQuery(connection, configuration) .from(qSimpleSubject) .where(qSimpleSubject.principal.eq(principal)) .singleResult(qSimpleSubject.encryptedCredential); }); }
/** * Note: transaction must be provided to this method. */ private void lockAuditApplicationTypeTargetResourceId() { querydslSupport.execute((connection, configuration) -> { QResource qResource = QResource.resource; return new SQLQuery(connection, configuration) .from(qResource) .where(qResource.resourceId.eq(auditApplicationTypeTargetResourceId)) .forUpdate(); }); }
@Nullable private Long selectDefaultProjectIcon(final DbConnection connection) { final QAvatar a = QAvatar.AVATAR; return connection.newSqlQuery() .from(a) .where(a.avatarType.eq(PROJECT_AVATAR) .and(a.systemAvatar.eq(TRUE)) .and(a.fileName.eq(DEFAULT_PROJECT_AVATAR_NAME))) .singleResult(a.id); }
private long[] readParentResourceIdsFromDatabase(final long resourceId) { return querydslSupport.execute((connection, configuration) -> { SQLQuery query = new SQLQuery(connection, configuration); QPermissionInheritance permissioninheritance = QPermissionInheritance.permissionInheritance; List<Long> result = query.from(permissioninheritance) .where(permissioninheritance.childResourceId.eq(resourceId)) .list(permissioninheritance.parentResourceId); return AuthorizationImpl.convertCollectionToLongArray(result); }); }
private List<Long> getMinusOneUserLocalePropertyIds(DbConnection dbConnection) { QOSPropertyEntry propertyEntry = QOSPropertyEntry.O_S_PROPERTY_ENTRY; QOSPropertyString propertyString = QOSPropertyString.O_S_PROPERTY_STRING; // MSSQL meet incompatible data type problem when we use equal operator (IN, EQUALS) so we have to use LIKE instead List<Long> propertyIds = dbConnection.newSqlQuery().from(propertyEntry).join(propertyString) .on(propertyEntry.id.eq(propertyString.id)) .where(propertyEntry.propertyKey.eq("jira.user.locale").and(propertyString.value.like("-1"))) .list(propertyString.id); return propertyIds; }
private boolean readPermissionFromDatabase(final long authorizedResourceId, final long targetResourceId, final String action) { return querydslSupport.execute((connection, configuration) -> { SQLQuery query = new SQLQuery(connection, configuration); QPermission permission = QPermission.permission; return query.from(permission) .where(permission.authorizedResourceId.eq(authorizedResourceId) .and(permission.targetResourceId.eq(targetResourceId)) .and(permission.action.eq(action))) .exists(); }); }