我希望在保存实体时使用级联
我的表A有col1和col2,我想将这些列Map到具有不同列名(如coltable1、coltable2等)的多个表
现在我在用
@JoinColumns({
@JoinColumn(name="col1", referencedColumnName="col1table1"),
@JoinColumn(name="col2", referencedColumnName="col2table1")
})
table1 tble1;
@JoinColumns({
@JoinColumn(name="col1", referencedColumnName="col1table3"),
@JoinColumn(name="col2", referencedColumnName="col2table3")
})
table3 tble3;
但在实体”error“的Map中出现重复列
我知道我可以使用insertable和updatable作为false,但是因为我必须插入记录,所以这是不相关的
有人能帮忙吗?
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: taskRequest column: PROJECT_SEQ_NUM_I (should be mapped with insert="false" update="false") at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:830)
1条答案
按热度按时间pjngdqdw1#
您有两个Map(tble 1和tble 3)都在当前表中使用同一组外键。如果创建一个引用特定table 1示例的示例,但将tble 3引用保留为空,您认为或希望发生什么情况?这些fk列的哪些值将进入数据库-您希望它们保留为空还是设置为col 1 table 1/col 2 table 1值中的任何值?JPA不允许对同一列有多个可写Map,并且要求您告诉它如何处理不一致的Map
选择一个并将另一个标记为只读,方法是将连接列更改为可插入=false,可更新=false: