use of com.querydsl.core.Tuple in project Settler by EmhyrVarEmreis.
the class UserService method getUsersWithValue.
public ResponseEntity<List<UserWithValueDTO>> getUsersWithValue(Long userId) {
if (Objects.isNull(userId) || userId < 0) {
userId = Security.currentUser().getId();
}
QUser user = QUser.user;
QTransaction transaction = QTransaction.transaction;
List<Tuple> fetch = new JPAQuery<>(entityManager).from(user, transaction).select(user, transaction.value.sum()).where(transaction.creator.id.eq(userId)).where(user.id.ne(userId)).where(transaction.owners.any().id.user.eq(user).or(transaction.contractors.any().id.user.eq(user))).groupBy(user.id, user.firstName, user.lastName, user.email, user.created, user.avatar, user.login, user.accountExpireDate).orderBy(transaction.value.sum().desc()).fetch();
ModelMapper preparedModelMapper = getModelMapper();
List<UserWithValueDTO> userWithValueDTOList = new ArrayList<>(fetch.size());
for (Tuple tuple : fetch) {
User u = tuple.get(user);
Double d = tuple.get(transaction.value.sum());
if (Objects.nonNull(u)) {
userWithValueDTOList.add(new UserWithValueDTO(userId, preparedModelMapper.map(u, String.class), d));
}
}
return new ResponseEntity<>(userWithValueDTOList, HttpStatus.OK);
}
use of com.querydsl.core.Tuple in project crnk-framework by crnk-project.
the class QueryDslTupleImplTest method setup.
@Before
public void setup() {
expression = Mockito.mock(Expression.class);
Tuple tuple = Mockito.mock(Tuple.class);
Mockito.when(tuple.size()).thenReturn(2);
Mockito.when(tuple.get(expression)).thenReturn("test");
Mockito.when(tuple.toArray()).thenReturn(new Object[] { "0", "1" });
Mockito.when(tuple.get(0, String.class)).thenReturn("0");
Mockito.when(tuple.get(1, String.class)).thenReturn("1");
Mockito.when(tuple.size()).thenReturn(2);
Map<String, Integer> selectionBindings = new HashMap<>();
impl = new QuerydslTupleImpl(tuple, selectionBindings);
}
use of com.querydsl.core.Tuple in project crnk-framework by crnk-project.
the class QuerydslExecutorImpl method getResultTuples.
@Override
public List<QuerydslTuple> getResultTuples() {
List<?> results = executeQuery();
List<QuerydslTuple> tuples = new ArrayList<>();
for (Object result : results) {
if (result instanceof Tuple) {
tuples.add(new QuerydslTupleImpl((Tuple) result, selectionBindings));
} else {
tuples.add(new QuerydslObjectArrayTupleImpl(result, selectionBindings));
}
}
return tuples;
}
use of com.querydsl.core.Tuple in project midpoint by Evolveum.
the class SqaleRepositoryService method prepareUpdateContext.
/**
* Read object for update and returns update context that contains it with specific get options.
*/
private <S extends ObjectType, Q extends QObject<R>, R extends MObject> RootUpdateContext<S, Q, R> prepareUpdateContext(@NotNull JdbcSession jdbcSession, @NotNull Class<S> schemaType, @NotNull UUID oid, Collection<SelectorOptions<GetOperationOptions>> getOptions, RepoModifyOptions options) throws SchemaException, ObjectNotFoundException {
SqaleTableMapping<S, QObject<R>, R> rootMapping = sqlRepoContext.getMappingBySchemaType(schemaType);
QObject<R> entityPath = rootMapping.defaultAlias();
Path<?>[] selectExpressions = ObjectArrays.concat(rootMapping.selectExpressions(entityPath, getOptions), entityPath.containerIdSeq);
Tuple result = jdbcSession.newQuery().select(selectExpressions).from(entityPath).where(entityPath.oid.eq(oid)).forUpdate().fetchOne();
if (result == null || result.get(entityPath.fullObject) == null) {
throw new ObjectNotFoundException(schemaType, oid.toString());
}
S object = rootMapping.toSchemaObject(result, entityPath, getOptions, jdbcSession, RepoModifyOptions.isForceReindex(options));
R rootRow = rootMapping.newRowObject();
rootRow.oid = oid;
rootRow.containerIdSeq = result.get(entityPath.containerIdSeq);
// This column is generated, some sub-entities need it, but we can't push it to DB.
rootRow.objectType = MObjectType.fromSchemaType(object.getClass());
return new RootUpdateContext<>(sqlRepoContext, jdbcSession, object, rootRow);
}
use of com.querydsl.core.Tuple in project midpoint by Evolveum.
the class SqaleRepositoryService method readByOid.
/**
* Read object using provided {@link JdbcSession} as a part of already running transaction.
*/
private <S extends ObjectType> S readByOid(@NotNull JdbcSession jdbcSession, @NotNull Class<S> schemaType, @NotNull UUID oid, Collection<SelectorOptions<GetOperationOptions>> options) throws SchemaException, ObjectNotFoundException {
SqaleTableMapping<S, QObject<MObject>, MObject> rootMapping = sqlRepoContext.getMappingBySchemaType(schemaType);
QObject<MObject> root = rootMapping.defaultAlias();
Tuple result = jdbcSession.newQuery().from(root).select(rootMapping.selectExpressions(root, options)).where(root.oid.eq(oid)).fetchOne();
if (result == null || result.get(root.fullObject) == null) {
throw new ObjectNotFoundException(schemaType, oid.toString());
}
return rootMapping.toSchemaObject(result, root, options, jdbcSession, false);
}
Aggregations