Сохранять значение NULL для вложенных объектов в столбце соединения - PullRequest
0 голосов
/ 06 апреля 2019

Моя структура классов выглядит следующим образом:

Product.java

@Entity
@Table(name = "products")
@Getter @Setter
public class Product extends BaseEntity {

    @Column(name = "name", nullable = false)
    protected @NotEmpty String name;

    @Column(name = "is_active")
    protected Boolean isActive = false;

    @Column(name = "price")
    protected @NotNull Integer price;

    @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy = "product")
    protected ProductDetails productDetails;
}

ProductDetails.java

@Entity
@Getter @Setter
public class ProductDetails extends BaseEntity {

    @Column(name = "description")
    protected String description;

    @Column(name = "cuisines")
    protected String cuisines;

    @OneToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "product_id")
    protected Product product;
}

Репозитории реализуют CrudReporitory для product и productDetails для обоих.И мой POST-запрос:

{
    "isActive": true,
    "name": "product4",
    "price": 10,
    "productDetails" : {
        "description": "prod desc 4",
        "cuisines": "south, asian"
    }
}

, когда вышеупомянутый запрос отправлен, вставьте в значения продуктов (созданный_каталог, обновленный_изображение, is_active, имя, цена) (?,?,?,?,?) И вставьтев значения product_details (create_at, updated_at, cuisines, description, product_id) (?,?,?,?,?)

выполняется, но product_id равен null в случае запроса 2, который дает мнеошибка как SQLIntegrityConstraintViolationException: Column 'product_id' cannot be null

Как я могу это исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...