Как добавить полный объект с вложенными объектами в проекции.Добавить полный объект с вложенными объектами в проекции
Проблема в том, что я хочу преобразовать данный HQL в API критериев.
SELECT p FROM Product p LEFT JOIN p.reviews r GROUP BY p ORDER BY r.rating ASC
Рассмотрите 1 Изделие имеет множество отзывов. (Отношение «один ко многим»)
Также я неохотно использую Projection, поскольку Product class имеет другие объекты, которые с нетерпением ожидают. например, класс продукта имеет бренд-сущность. (Много к одному).
Если возможно, я хочу минимальное количество проекционного кода.
Класс продукта
@Entity
public class Product {
@Id
@GeneratedValue
private long id;
private String name;
@OneToMany(mappedBy = "product")
private Review review;
@ManyToOne
private Brand brand;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Review getReview() {
return review;
}
public void setReview(Review review) {
this.review = review;
}
public Brand getBrand() {
return brand;
}
public void setBrand(Brand brand) {
this.brand = brand;
}
}
Обзор
@Entity
public class Review {
@Id
@GeneratedValue
private long id;
private String text;
private int rating;
@ManyToOne
private Product product;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public int getRating() {
return rating;
}
public void setRating(int rating) {
this.rating = rating;
}
public Product getProduct() {
return product;
}
public void setProduct(Product product) {
this.product = product;
}
}
@NeilStockton По моему ведому я могу использовать проекции. groupProperty ("product.id") вдоль Projections.avg ("review.rating"), а затем я могу сортировать по среднему показателю. Но мне нужно будет добавить каждое поле в проекцию. Мое требование просто Я хочу список продуктов и хочу заказать их в среднем по их рейтингу. 1 Продукт может иметь много Rating – Piyush
, и в этом случае это НЕ API-интерфейс JPA, следовательно, удаляет тег JPA. –
@NeilStockton Ok. Можете ли вы помочь мне с критериями Hibernate для вышеупомянутого HQL. Или, если это возможно с критериями JPA, тогда было бы полезно. – Piyush