假设我有两个由一对多关系连接的表
public class Slave
{
@Id
@Column(name = "id")
long id;
@JoinColumn(name = "master", referencedColumnName = "id")
Master master;
}
public class Master
{
@Id
@Column(name = "id")
long id;
@OneToMany(mappedBy = "master", targetEntity = Slave.class)
Collection<Slave> slaves;
}
是否可以创建CriteriaQuery来选择具有已知ID的所有Master of Slaves? 要像这样生成SQL:
SELECT * FROM slave s WHERE s.master=XXX;
应该{{1}}不仅仅是&#34;原生查询&#34;像这样
CriteriaQuery
提前谢谢
答案 0 :(得分:0)
我找到了一些解决方法。不确定它是否是JPA2规范的一部分但是对于hibernate,我能够将另一个属性映射到与Long相同的DB列。我只需要使用insertable=false, updatable=false
public class Slave
{
@Id
@Column(name = "id")
long id;
@Column(name = "master", insertable=false, updatable=false)
long masterId;
@JoinColumn(name = "master", referencedColumnName = "id")
Master master;
}
然后我刚刚使用此属性创建了CriteriaQuery