0
我有兩個表與一個映射表連接。雖然我收到一個null約束問題。以下是錯誤消息和兩個映射。既然這兩者都是很多的,我的假設是許多人可能都沒有,我怎麼能做到這一點,所以product_id或category_id可以爲空?空不允許,但應爲空
錯誤消息
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 2013-04-24 05:02:49
是的,錯誤與「PRODUCT_OPTION_ID」列有關,而與「PRODUCT_ID」或「IMAGE_ID」無關。 – 2013-04-24 05:14:44
我剛纔注意到了這個昨晚,但錯誤在Product_option_id和Category_id之間隨機切換。我認爲這是由於在H2中生成表格時實體被捕獲的順序。我包括產品選項加入。 – zmanc 2013-04-24 11:41:08