Я пытаюсь реализовать неблокирующий слой DAO для моего приложения, развивающегося в игровой среде (2.5.4). Это дает мне ошибку в deleteById()Ошибка генерации Java Generics Lambda
нет экземпляра (ов) переменной (ы) существует U так, что пустота соответствует U
abstract class BaseDao<E extends BaseModel> {
JPAApi jpaApi;
private Class<E> entityClazz;
BaseDao(JPAApi jpaApi, Class<E> entityClazz) {
this.jpaApi = jpaApi;
this.entityClazz = entityClazz;
}
public CompletionStage<E> save(E entity) {
return CompletableFuture.supplyAsync(() -> {
jpaApi.em().persist(entity);
return entity;
});
}
public CompletionStage<Optional<E>> findById(String id) {
return CompletableFuture.supplyAsync(() -> Optional.ofNullable(jpaApi.em().find(entityClazz, id))
);
}
public void deleteById(String id) {
findById(id).thenApply(
result -> result.ifPresent(
//HERE IS WHERE MY IDE COMPLAINTS
entity -> {
entity.setActive(false);
save(entity);
}
)
);
}
}
Любая помощь или предложение будет оценено.
Спасибо за хорошее объяснение. – DonkeyKong