У меня есть проект Grails 2.0.3, в котором есть две модели DomainA
и DomainB
, и обе связаны друг с другом отношениями many-to-many
, в которых DomainB
является дочерним элементом DomainA
.
class DomainA {
// properties
static hasMany = [domains: DomainB]
}
class DomainB {
// properties
static hasMany = [domains: DomainA]
static belongsTo = [DomainA]
}
Учитывая такой дизайн, я хочу запросить все DomainB
, в которых есть экземпляр(ы) DomainA
после запроса, установленного на DomainA
.
def domainsList = DomainA.createCriteria().list() {
// other criterions for the other properties
}
DomainB.createCriteria().list() {
inList("domains", domainsList)
// other criterions for the other properties
}
При выполнении приведенного выше кода возникает ошибка ERROR util.JDBCExceptionReporter - Parameter #1 has not been set.
, где Parameter #1
— это запрос имени свойства domains
в критерии inList
.
Имея такую проблему, возможно ли это решить? Как?
DomainA
, определенный дважды. Вы можете исправить свой вопрос? - person ubiquibacon   schedule 02.08.2012inList
может быть неподходящим предикатом для этого: B.domains — это список, а не отдельный домен A, поэтому он в любом случае никогда не будет членом списка, состоящего из доменов As, верно? - person Ulrich Schwarz   schedule 02.08.2012B.domains
- это набор, а не список. Что касается свойств членов, я искал аналогичный вопрос здесь stackoverflow.com/questions/10429023/ - person David B   schedule 02.08.2012