Spring boot 1.2.5 Hibernate JPA вложил многие из многих отношений

У меня есть 3 таблицы, например следующие

Продукт {   Я бы,   заглавие }

Product_image {   Код товара,   image_type_id,   дорожка,   alt_text }

Product_image_type {   id, type_name }

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

Product{
    id,
    title,
    image_types[
        {
             type_id,
             type_name,
             image [
                 {
                      alt_text,
                      path
                 },
                 {
                      alt_text,
                      path
                 }
             ] 
        },
        {
             type_id,
             type_name,
             image [
                 {
                      alt_text,
                      path
                 }
             ] 
        }
    ]
}

Я сделал следующее

Класс продукта:

@ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinTable(
    name = "product_image",
    joinColumns = { @JoinColumn(name = "productId", referencedColumnName = "id") },
    inverseJoinColumns = { @JoinColumn(name = "typeId", referencedColumnName = "id") }
)   
private Set<ProductImageType> imageTypes = new HashSet();

Класс Product_type_image:

@ManyToMany(mappedBy="imageTypes")
private Set<Product> products;

@OneToMany(fetch=FetchType.LAZY, mappedBy = "productImageType")
private Set<ProductImage> productImages = new HashSet();

Класс product_image:

@OneToOne(fetch=FetchType.LAZY, mappedBy="productImage")
@JoinColumn(name="typeId", referencedColumnName = "id", insertable=false, updatable=false)
private ProductImageType oneProductImageType;

У меня появился такой формат, какой я хочу, однако у меня есть все изображения продуктов для одного типа, я хочу получить только изображения для изображения продукта только для текущего продукта. Например, я попросил product_id = 1, у меня есть тип 2, я хочу, чтобы изображения внутри этих двух типов были только для product_id = 1.

Хороший пример:

Prodcut{
    id: 1,
    title: "product title 1",
    image_types:[
    {
         type_id: 1
         type_name: "type example 1"
         image [
             {
                  product_id: 1,
                  alt_text: "something",
                  path: "http:something",
             },
             {
                  product_id: 1,
                  alt_text: "something2",
                  path: "http:something2",
             }
         ] 
    },
    {
         type_id: 2
         type_name: "type example 2"
         image [
             {
                  product_id: 1,
                  alt_text: "type 2 something",
                  path: "http:something",
             },
             {
                  product_id: 1,
                  alt_text: "type 2something2",
                  path: "http:something2",
             }
         ] 
    }
    ]
}

Что я получаю сейчас:

Prodcut{
    id: 1,
    title: "product title 1",
    image_types:[
    {
         type_id: 1
         type_name: "type example 1"
         image [
             {
                  product_id: 1,
                  alt_text: "something",
                  path: "http:something",
             },
             {
                  product_id: 1,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 2,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 3,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 4,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 4,
                  alt_text: "something2",
                  path: "http:something2",
             }
         ] 
    },
    {
         type_id: 2
         type_name: "type example 2"
         image [
             {
                  product_id: 1,
                  alt_text: "type 2 something",
                  path: "http:something",
             },
             {
                  product_id: 1,
                  alt_text: "type 2something2",
                  path: "http:something2",
             },
             {
                  product_id: 1,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 2,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 3,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 4,
                  alt_text: "something2",
                  path: "http:something2",
             },
             {
                  product_id: 4,
                  alt_text: "something2",
                  path: "http:something2",
             }
         ] 
    }
    ]
}

Содержимое в таблицах:

Product Table: 
    id    title
    1     product title 1
    2     product title 2
    3     product title 3
    4     product title 4
    5     product title 5

Product_image Table:
    product_id   image_type_id   path                alt_text
    1            1               http:something      something
    1            1               http:something2     something2
    1            2               http:something      type 2 something
    1            2               http:something2     type 2 something2
    2            1               http:something2     something2
    3            1               http:something2     something2
    4            1               http:something2     something2
    4            1               http:something2     something2
    2            2               http:something2     something2
    3            2               http:something2     something2
    4            2               http:something2     something2
    4            2               http:something2     something2

Product_image_type Table:
    id  type_name
    1   type example 1
    2   type example 2

Спасибо заранее!