Skip to content

Commit df564af

Browse files
committed
feat: include new methods from Template
Signed-off-by: Otavio Santana <[email protected]>
1 parent 75011ce commit df564af

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

jnosql-mapping/jnosql-mapping-semistructured/src/main/java/org/eclipse/jnosql/mapping/semistructured/AbstractSemiStructuredTemplate.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import java.time.Duration;
4141
import java.util.Iterator;
4242
import java.util.List;
43+
import java.util.Objects;
4344
import java.util.Optional;
4445
import java.util.function.Consumer;
4546
import java.util.function.Function;
@@ -148,6 +149,27 @@ public <T> Iterable<T> insert(Iterable<T> entities, Duration ttl) {
148149
.collect(Collectors.toList());
149150
}
150151

152+
@Override
153+
public <T> void delete(T entity) {
154+
Objects.requireNonNull(entity, "entity is required");
155+
EntityMetadata metadata = entities().get(entity.getClass());
156+
FieldMetadata idField = metadata.id()
157+
.orElseThrow(() -> IdNotFoundException.newInstance(metadata.type()));
158+
159+
var idValue = idField.read(entity);
160+
LOGGER.fine("Deleting entity: " + entity.getClass() + " with id: " + idValue);
161+
DeleteQuery query = DeleteQuery.delete().from(metadata.name())
162+
.where(idField.name()).eq(idValue).build();
163+
manager().delete(query);
164+
}
165+
166+
@Override
167+
public <T> void delete(Iterable<? extends T> iterable) {
168+
Objects.requireNonNull(iterable, "iterable is required");
169+
StreamSupport.stream(iterable.spliterator(), false)
170+
.forEach(this::delete);
171+
}
172+
151173
@Override
152174
public void delete(DeleteQuery query) {
153175
requireNonNull(query, "query is required");

0 commit comments

Comments
 (0)