I've been trying to create a criteria builder containing a belongsTo relation and have yet to succeed. Consider the following model:
class Msg {
...
static belongsTo = [user: User]
...
}
class User {
...
Organisation organisation
...
}
I'm trying to make the following query:
Msg.createCriteria().list() {
...
user {
eq("organisation", organisationInstance)
}
...
}
All I'm getting is the following error
ERROR errors.GrailsExceptionResolver - No signature of method: static User.call() is applicable for argument types: (MsgService$_findMessages_closure1_closure6) values: [MsgService$_findMessages_closure1_closure6@afcba8]
Possible solutions: save(), wait(), any(), getAll(), save(java.lang.Boolean), save(java.util.Map)
I've tried to add different small additions to the criteria query like:
join "user"
fetchMode("user", org.hibernate.FetchMode.EAGER)
But still get the same problem.
I even tried to add the following static mapping to the Msg class:
static mapping = {
columns {
user lazy: false
}
}
Still not working.
Is there a way to use criteria builder containing a belongsTo query at all?
Thanks for your help in advance.
Lucien
I've found the solution! The problem wasn't related to criteria builder at all. In this instance, I had a user variable inside the scope. Once a removed it it works like a charm :-)
def criteria = Msg.createCriteria()
results = criteria.list{
user{
eq("organisation", organisationInstance)
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With