关于网友提出的“ spring注解写的Entity中,某个类有俩外键,运行时就报错,啥问题啊”问题疑问,本网通过在网上对“ spring注解写的Entity中,某个类有俩外键,运行时就报错,啥问题啊”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: spring注解写的Entity中,某个类有俩外键,运行时就报错,啥问题啊
描述:spring注解外键
商品评论(comment),对应评论者(shopper)和商品(commodity)
//多条评论对应一个shopper
@ManyToOne(cascade=CascadeType.REMOVE,opti />
@JoinColumn(name="ID")
private Shopper shopper;
//多条评论对应一个商品
@ManyToOne(cascade=CascadeType.REMOVE,opti />
@JoinColumn(name="ID")
private Commodity commodity;
评论:
@OneToMany(cascade={CascadeType.REMOVE},mappedBy="commodity")
private List comment;
购物者:
@OneToMany(cascade={CascadeType.REMOVE},mappedBy="shopper")
private List comment;
但是运行就报错:
Repeated column in mapping for entity: com.wtu.Entity.Shopper.Comment column: ID (should be mapped with insert="false" update="false")
解决方案1: 多条评论对应一个shopper
@JoinColumn(name="ID")
private Shopper shopper;
多条评论对应一个商品
@JoinColumn(name="ID")
private Commodity commodity;
同一张表里使用了相同名称两个外键 所以报错
解决方案2: joincolum 中 name 对应的是 你想要映射的关联依据 字段名称
解决方案3: @ManyToOne(targetEntity = CmcsUser.class, fetch = FetchType.EAGER)
@JoinColumn(name = "USER_ID")
private CmcsUser user;
@ManyToOne(targetEntity = CmcsGroup.class, fetch = FetchType.EAGER)
@JoinColumn(name = "GROUP_ID")
private CmcsGroup group;
给你参考下
解决方案4: 楼主,把你的Id改一下,你的 两个实体类注解的@JoinColumn(name="ID")的name是一样的,
以上介绍了“ spring注解写的Entity中,某个类有俩外键,运行时就报错,啥问题啊”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1792573.html