У меня есть связь между тремя объектами (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 {
}
У меня есть связь между тремя объектами (Invoice и InvoiceRating и User) Я не могу создать список счетов, отсортированный по рейтингу для конкретного пользователя. Даже если рейтинга нет, счет-фактура должен быть указан (пользователь — это просто параметр для фильтрации рейтинга) { invoiceA : рейтинг:2 другие поля счет-фактураB: рейтинг:3 другие поля счет-фактураC: другие поля
[code]@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;
int rating; } @Embeddable public class BusinessTransactionRating { @Column(name = "transaction_id") Long transactionId;
@Column(name = "user_id") Long userId;
} @Entity public class User { } [/code] Код, который работает: [code]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); [/code] [b]Что мне нужно сделать, чтобы добавить выборку InvoiceRating, отфильтрованную пользователем?[/b]
У меня есть связь между тремя объектами (Invoice и InvoiceRating и User)
Я не могу создать список счетов, отсортированный по рейтингу для конкретного пользователя. Даже если рейтинга нет, счет-фактура должен быть указан (пользователь — это всего...
У меня есть связь между тремя объектами (Invoice и InvoiceRating и User)
Я не могу создать список счетов, отсортированный по рейтингу для конкретного пользователя. Даже если рейтинга нет, счет-фактура должен быть указан (пользователь — это всего...
У меня есть связь между тремя объектами (Invoice и InvoiceRating и User)
Я не могу создать список счетов, отсортированный по рейтингу для конкретного пользователя. Даже если рейтинга нет, счет-фактура должен быть указан (пользователь — это всего...
Мне нужно реплицировать этот запрос в код JPA CriteriaBuilder :
....
where
article.client_id = 1
and article.price > 0
and (
article.code like '%this is statement%'
or article.oem_code like '%this is statement%'
or (
article.description like...
Мне нужно реплицировать этот запрос в код JPA CriteriaBuilder :
....
where
article.client_id = 1
and article.price > 0
and (
article.code like '%this is statement%'
or article.oem_code like '%this is statement%'
or (
article.description like...