0
두 테이블이 맵핑 테이블과 결합됩니다. 비록 null 제약 문제가 있어요. 아래는 오류 메시지와 두 가지 매핑입니다. 두 가지 모두 manyTomany라고 가정하기 때문에 많은 사람들이 아무 것도 할 수 없다는 것입니다. 어떻게하면 product_id 또는 category_id가 null이 될 수 있습니까?널 (null)은 허용되지 않지만 널 (null)이어야합니다.
오류 메시지
Caused by: org.h2.jdbc.JdbcBatchUpdateException: NULL not allowed for column "PRODUCT_OPTION_ID"; SQL statement:
insert into ImageMapping (product_id, image_id) values (?, ?) [23502-168]
카테고리
@JoinTable(
name = "ImageMapping",
joinColumns = @JoinColumn(name = "category_id"),
inverseJoinColumns = @JoinColumn(name = "image_id")
)
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Set<Image> categoryImageId;
제품
@JoinTable(
name="ImageMapping",
joinColumns = @JoinColumn(name = "product_id"),
inverseJoinColumns = @JoinColumn(name = "image_id")
)
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private Set<Image> productImageGroup;
제품 옵션
@JoinTable(
name="ImageMapping",
joinColumns = @JoinColumn(name = "product_option_id"),
inverseJoinColumns = @JoinColumn(name = "image_id")
)
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<Image> productOptionImageGroup;
'ImageMapping' 테이블에'PRODUCT_OPTION_ID'라는 이름의 또 다른 열이 없습니까? – dcernahoschi
예, 'PRODUCT_ID' 또는'IMAGE_ID'가 아니라 'PRODUCT_OPTION_ID' 열에 대한 오류입니다. –
방금 지난 밤에 눈치 챘지만 오류는 Product_option_id와 Category_id 사이에서 임의로 전환됩니다. 이것은 테이블에서 H2가 생성 될 때 엔티티가 스냅되는 순서 때문이라고 생각합니다. 제품 옵션이 포함되었습니다. – zmanc