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(); }
@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()); }
@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 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()); }
@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); }); }
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); }
@Override public List<Worklog> getWorklogsUpdateSince(final Long sinceInMiliseconds, 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.updated.goe(new Timestamp(sinceInMiliseconds)) .and(WORKLOG.updated.loe(new Timestamp(minuteAgo())))) .orderBy(WORKLOG.updated.asc()) .limit(maxResults) .list(WORKLOG_ALIASED_PROJECT_ROLE_TUPLE) ).stream() .map(queryDSLWorklogFactory::createWorklogWithAliasedIdColumn) .collect(Collectors.toList()); }
/** * 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(); }); }
@Override public List<Worklog> getByIssue(final Issue issue) { checkArgument(issue != null, "Cannot resolve worklogs for null issue."); final BooleanExpression query = issue.getId() != null ? WORKLOG.issue.eq(issue.getId()) : WORKLOG.issue.isNull(); return dbConnectionManager.executeQuery(dc -> dc.newSqlQuery() .from(WORKLOG) .leftJoin(QProjectRole.PROJECT_ROLE) .on(QProjectRole.PROJECT_ROLE.id.eq(WORKLOG.rolelevel)) .where(query) .orderBy(WORKLOG.created.asc()) .list(WORKLOG_PROJECT_ROLE_TUPLE) ).stream() .map(t -> queryDSLWorklogFactory.createWorklog(issue, t)) .collect(Collectors.toList()); }
@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 AuditApplication selectAuditApplication(final String applicationName) { return querydslSupport.execute((connection, configuration) -> { QApplication qApplication = QApplication.application; return new SQLQuery(connection, configuration) .from(qApplication) .where(qApplication.applicationName.eq(applicationName)) .uniqueResult(Projections.fields(AuditApplication.class, qApplication.applicationId, qApplication.applicationName, qApplication.resourceId)); }); }
@Override public SimpleSubject readSimpleSubjectByPrincipal(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(ConstructorExpression.create(SimpleSubject.class, qSimpleSubject.simpleSubjectId, qSimpleSubject.principal, qSimpleSubject.resourceId)); }); }
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(); }); }
@Override public Worklog getById(final Long id) { if (id == null) { return null; } final Tuple worklogTuple = dbConnectionManager.executeQuery(dc -> dc.newSqlQuery() .from(WORKLOG) .leftJoin(QProjectRole.PROJECT_ROLE) .on(QProjectRole.PROJECT_ROLE.id.eq(WORKLOG.rolelevel)) .where(WORKLOG.id.eq(id)) .singleResult(WORKLOG_ALIASED_PROJECT_ROLE_TUPLE)); return queryDSLWorklogFactory.createWorklogWithAliasedIdColumn(worklogTuple); }
@Override public void run(final DbConnection dbConnection) { final List<? extends ProjectComponent> results = dbConnection.newSqlQuery().from(na) .join(c).on(c.id.eq(na.sinkNodeId)) .where(na.sourceNodeEntity.eq("Issue") .and(na.sourceNodeId.eq(issue.getId())) .and(na.sinkNodeEntity.eq("Component")) .and(na.associationType.eq("IssueComponent"))) .list(Projections.constructor(ProjectComponentImpl.class, c.id, c.name, c.description, c.lead, c.assigneetype, c.project)); components.addAll(results); } });