Search in sources :

Example 11 with FieldRepresentation

use of org.jnosql.artemis.reflection.FieldRepresentation in project jnosql-artemis by eclipse.

the class AbstractDocumentTemplate method find.

@Override
public <T, ID> Optional<T> find(Class<T> entityClass, ID id) {
    requireNonNull(entityClass, "entityClass is required");
    requireNonNull(id, "id is required");
    ClassRepresentation classRepresentation = getClassRepresentations().get(entityClass);
    FieldRepresentation idField = classRepresentation.getId().orElseThrow(() -> IdNotFoundException.newInstance(entityClass));
    Object value = ConverterUtil.getValue(id, classRepresentation, idField.getFieldName(), getConverters());
    DocumentQuery query = DocumentQueryBuilder.select().from(classRepresentation.getName()).where(idField.getName()).eq(value).build();
    return singleResult(query);
}
Also used : FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) DocumentQuery(org.jnosql.diana.api.document.DocumentQuery) ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation)

Example 12 with FieldRepresentation

use of org.jnosql.artemis.reflection.FieldRepresentation in project jnosql-artemis by eclipse.

the class AbstractDocumentTemplateAsync method getDeleteQuery.

private <T, ID> DocumentDeleteQuery getDeleteQuery(Class<T> entityClass, ID id) {
    ClassRepresentation classRepresentation = getClassRepresentations().get(entityClass);
    FieldRepresentation idField = classRepresentation.getId().orElseThrow(() -> IdNotFoundException.newInstance(entityClass));
    Object value = ConverterUtil.getValue(id, classRepresentation, idField.getFieldName(), getConverters());
    return DocumentQueryBuilder.delete().from(classRepresentation.getName()).where(idField.getName()).eq(value).build();
}
Also used : FieldRepresentation(org.jnosql.artemis.reflection.FieldRepresentation) ClassRepresentation(org.jnosql.artemis.reflection.ClassRepresentation)

Aggregations

FieldRepresentation (org.jnosql.artemis.reflection.FieldRepresentation)12 ClassRepresentation (org.jnosql.artemis.reflection.ClassRepresentation)11 Value (org.jnosql.diana.api.Value)3 Field (java.lang.reflect.Field)2 Optional (java.util.Optional)2 Converters (org.jnosql.artemis.Converters)2 ColumnQuery (org.jnosql.diana.api.column.ColumnQuery)2 DocumentQuery (org.jnosql.diana.api.document.DocumentQuery)2 ColumnDeleteQuery (org.jnosql.diana.api.column.ColumnDeleteQuery)1 DocumentDeleteQuery (org.jnosql.diana.api.document.DocumentDeleteQuery)1