JPA CriteriaBuilder: список верхнего класса с внутренним списком классов с ограничениямиJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 JPA CriteriaBuilder: список верхнего класса с внутренним списком классов с ограничениями

Сообщение Anonymous »

У меня есть связь между тремя объектами (Invoice и InvoiceRating и User)
Я не могу создать список счетов, отсортированный по рейтингу для конкретного пользователя. Даже если рейтинга нет, счет-фактура должен быть указан (пользователь — это просто параметр для фильтрации рейтинга)
{
invoiceA :
рейтинг:2
другие поля
счет-фактураB:
рейтинг:3
другие поля
счет-фактураC:
другие поля

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

@Entity
public class Invoice  {
@OneToMany(mappedBy = "invoice", fetch = FetchType.LAZY)
Set ratings;
}
@Entity
public class InvoiceRating {
@EmbeddedId
BusinessTransactionRating ratingKey;

@ManyToOne
@MapsId("userId")
@JoinColumn(name = "user_id")
User user;

@ManyToOne
@MapsId("transactionId")
@JoinColumn(name = "invoice_id")
Invoice invoice;

int rating;
}
@Embeddable
public class BusinessTransactionRating {
@Column(name = "transaction_id")
Long transactionId;

@Column(name = "user_id")
Long userId;

}
@Entity
public class User {
}
Код, который работает:

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

CriteriaQuery criteriaQuery = cBuilder.createQuery(Invoice.class);
Root rootInvoice = criteriaQuery.from(Invoice.class);

pageable.getSort().stream().forEach(order -> { // sorting
Path prop = rootInvoice.get(order.getProperty());
list.add(order.isAscending() ? cBuilder.asc(prop) : cBuilder.desc(prop));
// finalQuery.orderBy();
});
CriteriaQuery criteriaQueryOrder = finalQuery.orderBy(list);
// TO DO / Add the count Line and the rebuild pageImpl
TypedQuery queryPaginate = entityManager.createQuery(criteriaQueryOrder);
Что мне нужно сделать, чтобы добавить выборку InvoiceRating, отфильтрованную пользователем?

Подробнее здесь: https://stackoverflow.com/questions/790 ... onstraints
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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