Вернуть массив объектов в соединении - PullRequest
0 голосов
/ 04 мая 2018

У меня есть этот товар:

@Entity
public class Product implements Serializable{
@ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "category_id")
    @JsonBackReference
    private ProductCategory productCategory;
}

и категория объекта:

@Entity
public class ProductCategory implements Serializable{
@OneToMany(fetch = FetchType.LAZY, mappedBy="productCategory" ,cascade = CascadeType.ALL)
    @JsonManagedReference
    @OrderBy("id desc")
    private Set<Product> products = new HashSet<Product>(); 
}

API отдыха:

@Query("select p,productCategory.id,productCategory.name from Product p inner join p.productCategory productCategory")
    public Page<Product> getProductsWithCategory(Pageable pageable);

Возвращает следующий JSON:

"content": [
        [
            {
                "id": 2,
                "sku": "REF_25471",
                "name": "Serrure Washington"
            },
            1,
            "Hello 1"
        ],

Я хочу добавить объект категории в JSON следующим образом:

"content": [
    {
      "id": 1,
      "name": "Hello 1",
      "products": [
        {
          "id": 4,
          "sku": "REF_25472",
          "name": "Serrure Washington",
          "productCategory": [
            {
              "id": 1,
              "name": "Hello 1"
            }
          ]
        }
      ]
    }
  ]
...