Код: Выделить всё
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;
}
Код: Выделить всё
AssetНа моей странице фермеров я хочу выбирайте только активные активы фермеров.
Я пробовал с
Код: Выделить всё
@WhereJoinTable(clause = "is_active ='true'")Теперь я не могу изменить структуру объекта и использую @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());
Зашёл сюда за советами.
Подробнее здесь: https://stackoverflow.com/questions/721 ... -condition
Мобильная версия