簡體   English   中英

使用復合鍵加入@ManyToOne休眠

[英]Join @ManyToOne hibernate using composite Key

我有這張桌子

在此處輸入圖片說明

我還有另一個表,它僅對M_CODE類型使用CODE

所以這映射到這兩個類

@Entity
@Table(name = "PIS_DOMAIN_DETAIL")
public class Domain implements Serializable{

@Id
DomainId id;

@Column(name = "CODE" , insertable = false, updatable = false)
private Integer code;
@Column(name = "COM_NO")
private Integer comNo;
@Column(name = "DESC_A")
private String descA;
@Column(name = "DESC_L")
private String descL;
@Column(name = "TIMESTAMP")
private Date timestamp;
@Column(name = "USER_ID")
private Integer userId;

這是可嵌入的

@Embeddable
public class DomainId implements Serializable{
@Column(name = "M_CODE")
private Integer mCode;
@Column(name = "CODE")
private Integer code;}

所以在僅使用WF_STATUS列中的代碼的其他表中,我創建了這個

// this is select id.code from Domain  where id.mCode=35
@Column(name = "WF_STATUS") //that recievce CODE from domain entity
private Integer wfStatus;

@ManyToOne
@JoinColumn(name = "WF_STATUS", referencedColumnName = "CODE",
    insertable = false, updatable = false )
@Where(clause=" id.mCode = 35 ")
Domain status;

但這出了這個錯誤

找到了多個具有給定標識符的行:com.project.entities.Domain@50bc3219,對於類:com.project.entities.Domain

我如何編輯我的地圖以接受這種情況..在此先感謝...

您有一個重復的列,您應該確定code列是否作為復合鍵的一部分出現在DomainId中(僅在Domain類中)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM