Данные Spring - порядок по умножению столбцов - PullRequest
1 голос
/ 12 марта 2019

Я столкнулся с проблемой, когда мне нужно поставить порядок путем умножения двух столбцов сущности, ради воображения сущности это:

@Entity
public class Entity {

    @Column(name="amount")
    private BigDecimal amount;

    @Column(name="unitPprice")
    private BigDecimal unitPrice;

    .
    .
    .
    many more columns
}

Мой интерфейс репо реализует JpaRepository и QuerydslPredicateExecutor, но яизо всех сил пытаюсь найти способ упорядочить мои данные по «количеству * unitPrice», так как я не могу найти способ поместить их в

PageRequest (new Sort.Order(ASC, "amount * unitPrice"))

без PropertyReferenceException:Нет значения свойства * unitPrice ... thrown.

Я не могу выполнить пользовательский запрос по имени, так как мой запрос принимает довольно массивный фильтр, основанный на пользовательских входных данных (не может поместить предложение where в запрос, потому что если пользователь не имеет 't выбрано любое значение, где предложение не может быть просто в запросе).

Чтобы упростить его.Мне нужно что-то вроде findAll (Predicate, Pageable), но мне нужно заставить этот запрос упорядочить себя по "amount * unitPrice", но также не затрагивать мои Preditate (фильтр) и Pageable (смещение, лимит, другие сортировки).

1 Ответ

0 голосов
/ 12 марта 2019

Spring Sort может использоваться только для сортировки по свойствам, а не по выражениям.

Но вы можете создать уникальную сортировку в Predicate, так что вы можете добавить этоСортируйте предикат для другого, прежде чем вызывать метод findAll.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...