我只在注释中使用休眠。我的桌子看起来像这样:
@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;
...
目前,当我两次编写相同的 NetworkType 时,由于 UniqueConstraint (这是预期的)而引发异常。
我的想法是在检查之前先阅读该项目。问题是,我的主键是 Id,因为其他表引用了这个表,所以我需要它。
为“network_id”和“type”查询项目以验证组合不存在的最佳方法是什么?
我知道我可以手动使用 Query 来做到这一点,但是有没有更多的 Hibernate-y 方式来做到这一点?
一般来说,在不使用 PK 的情况下“获取”对象的正确方法是什么?标准或查询是最好的方法吗?