hibernate - 具有休眠状态的实体的映射中的重复列
问题描述
我正在使用hibernate做一个项目。我的映射有问题。我收到了这个错误:
Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: org.el_dao.entity.Save column: idModel (should be mapped with insert="false" update="false")
这是实体:
@Embeddable
public class SaveId implements Serializable{
private static final long serialVersionUID = 1L;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "login", referencedColumnName = "login")
private User login;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "idStep", referencedColumnName = "idStep", insertable=false, updatable=false),
@JoinColumn(name = "idModel3", referencedColumnName = "idModel", insertable=false, updatable=false),
@JoinColumn(name = "idPart2", referencedColumnName = "idPart", insertable=false, updatable=false),
@JoinColumn(name = "idPiece", referencedColumnName = "idPiece", insertable=false, updatable=false)
})
private Step idStep;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "idPart", referencedColumnName = "idPart", insertable=false, updatable=false),
@JoinColumn(name = "idModel", referencedColumnName = "idModel", insertable=false, updatable=false)
})
private Part idPart;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idModel", referencedColumnName = "idModel", insertable=false, updatable=false)
private Model idModel;
以及使用前一个的实体:
@Entity
@Proxy(lazy = false)
@Table(name = "save", schema = "public")
public class Save implements Serializable{
private static final long serialVersionUID = 1L;
/**
* Save's id
*/
@EmbeddedId
private SaveId saveId;
我已经使用了几种没有结果的选择,例如在 false 中添加插入和更新。
解决方案
根据休眠文档:
嵌入对象的每个持久属性或字段都映射到实体的数据库表。
因此,在您的情况下,实体 Save 将有两个名为 idModel 的列,这就是休眠抱怨的原因。您应该更改连接列之一的名称,例如:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idModel2", referencedColumnName = "idModel", insertable=false, updatable=false)
private Model idModel;
推荐阅读
- amazon-web-services - 无法从 aws s3 存储桶中删除图像
- laravel - InvalidArgumentException - 安装旧版本的 Laravel
- date - 将日期类型添加到 prisma2 模式
- python - 在 Python 中后处理 subprocess.run 的输出信息
- ros - 如何通过网络将 ros 节点连接到主题
- spring-boot - java.lang.OutOfMemoryError:无法创建本机线程:可能内存不足或达到进程/资源限制 - Spring Webflux
- c# - 在将 Worker 服务发布为 Windows 服务后,它一直失败并出现错误:System.NullReferenceException
- asynchronous - 如果我们必须等待结果继续进行,异步行为有什么用处?
- python - 带有条件熊猫的列均值
- python - 使用 boto 的函数的 CloudTrail 日志