簡體   English   中英

如何在視圖中添加主鍵?

[英]How to add primary key to a view?

我希望使用Hibernate將數據庫視圖映射到Java對象中,但是由於我的視圖中沒有Id,因此無法這樣做。

如何在視圖中將列設置為主鍵?

@Entity
@Table(name = "employmentinformationview")
public class EmploymentInformationView implements Serializable {

    //@Id
    //No primary key

    @Column(name = "InfoID")
    private int infoId;

    @Column(name = "EmpID")
    private String empId;

    ...

}

根據Piotr的建議,選擇一個或一組視圖中唯一的列。 如果您有一列唯一且不為null的列,則可以選擇該列作為您的主鍵。

例如,要將empId用作主鍵,可以嘗試以下操作:

@Id
@Column(name = "EmpID")
private String empId;

但是,如果您有多列可以作為復合鍵形成,那么您需要使用@EmbeddedId創建復合鍵:

@Entity
@Table(name = "employmentinformationview")
public class EmploymentInformationView implements Serializable {

    @EmbeddedId
    @AttributeOverride(name="infoId", column=@Column(name="InfoID")
    @AttributeOverride(name="empId", column=@Column(name="EmpID")
    EmploymentViewId id;

    ...

}

組合鍵被聲明為Embedabble類:

@Embeddable
class EmploymentViewId implements Serializable {
    int infoId;
    String empId;
}

暫無
暫無

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

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