Как удалить элемент из набора внутри страницы элементов на основе условия с использованием потоков Java 8JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как удалить элемент из набора внутри страницы элементов на основе условия с использованием потоков Java 8

Сообщение Anonymous »

У меня есть страница фермеров, полученная из репозитория JPA при вызове метода findAll. Каждый фермер состоит из набора ферм, которые также входят в вызов репозитория следующим образом:

Код: Выделить всё

public class Farmer {

private String name;
@ManyToMany
@JoinTable(name = "farmer_asset", joinColumns = @JoinColumn(name = "farmer_id", referencedColumnName = "id"), inverseJoinColumns = @JoinColumn(name = "asset_id", referencedColumnName = "id"))
private Set assets;
}
имеет свойство isActive, которое указывает, активен актив или нет.
На моей странице фермеров я хочу выбирайте только активные активы фермеров.
Я пробовал с

Код: Выделить всё

@WhereJoinTable(clause = "is_active ='true'")
Однако я узнал, что свойство is_active должно находиться в промежуточном отношении многие-ко-многим в таблице Farmer_asset. p>
Теперь я не могу изменить структуру объекта и использую @WhereJoinTable(clause = "is_active ='true'").
Итак, я подумал о том, чтобы попытаться отфильтровать значения после вызова JPA.
Однако я перебрал каждого фермера, а затем удалил inActive Assets а затем добавить его обратно на страницу и поддерживать элементы Page показалось слишком ресурсоемкой операцией.
Я попробовал использовать обычный Java-код, который выглядит примерно так:< /p>

Код: Выделить всё

Page farmers = farmerRepository.findAll(pageable);

List farmersList = new LinkedList();

for (FarmerDto eachFarmer : farmers.getContent()) {

Set eachFarmerAssets =
eachFarmer.getAssets();

eachFarmerAssets.removeIf(e ->
!e.getIsActive());

eachFarmer.setAssets(eachFarmerAssets);

farmersList.add(eachFarmer);
}
return new PageImpl(farmersList, pageable, farmers.getTotalElements());
Я хотел бы сделать это в Java 8 с использованием потоков, но я не могу перебирать список и изменять его элемент, который, в свою очередь, является Set.< /p>
Зашёл сюда за советами.

Подробнее здесь: https://stackoverflow.com/questions/721 ... -condition
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»