Hibernate 使用createCriteria的嵌套联接查询
我使用的是Grails3.x。我有以下简单的领域:Hibernate 使用createCriteria的嵌套联接查询,hibernate,grails,gorm,Hibernate,Grails,Gorm,我使用的是Grails3.x。我有以下简单的领域: class Classification { String name static belongsTo = [instrument: Instrument, ptf: Portfolio] } class Instrument { Long internalId String name static hasOne = [classification: Classification] static
class Classification {
String name
static belongsTo = [instrument: Instrument, ptf: Portfolio]
}
class Instrument {
Long internalId
String name
static hasOne = [classification: Classification]
static hasMany = [analisys: Analisys]
}
class Analisys {
Instrument instrument
int serialId
}
我正在尝试执行以下查询:
def results = Classification.createCriteria().list() {
ptf {
eq("id", 10l)
}
instrument {
analisys{
eq("serialId", 5)
}
}
instrument {
eq("name", "testName")
}
return results
}
它是有效的,但根本不考虑约束eq(“serialId”,5)。有什么想法吗
谢谢
我这样更改查询,即使CriteriaSpecification不推荐使用,它也可以工作
def results = Classification.createCriteria().list() {
ptf {
eq("id", 10l)
}
instrument {
eq("name", "testName")
analisys(org.hibernate.criterion.CriteriaSpecification.LEFT_JOIN){
eq("serialId", 5)
}
}
return results
}
您是否尝试过将
eq(“name”,“testName”)
移动到仪器
的上一个关闭中,但在分析
关闭之前/之后。这样,您的标准中只有一个工具
闭包?感谢您的点击,我只是尝试一下:没有幸运的人可以使用JoinType
而不是CriteriaSpecification
,因为它已被弃用。这是你的电话号码