1
我僅在註解中使用hibernate。我的表看起來是這樣的:不使用主鍵檢查uniq約束條件
@Entity
@Table(name = "NetworkType",
uniqueConstraints = {@UniqueConstraint(columnNames = {"network_id", "type"})})
public class NetworkType implements Serializable {
@Id
private long id;
@Column(name = "network_id", nullable = false)
private long networkId;
@Column(name = "type", nullable = false)
private String type;
...
目前,當我寫相同的網絡類型的兩倍,它拋出一個異常,由於的UniqueConstraint(預計)。
我的想法是在檢查前先閱讀該項目。問題是,我的主鍵是Id,我需要它,因爲其他表引用此表。
什麼是最好的方式來查詢「network_id」和「type」來驗證組合不存在?
我知道我可以用一個查詢手動做到這一點,但是有沒有更多的Hibernate-y的方式來做到這一點?
一般來說,在不使用PK的情況下「獲取」物體的正確方法是什麼?是標準還是查詢的最佳方式?