You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When doing a query with a .find { } method on a domain object (in this case in a Grails 4.0.11 application) the generated detached criteria does not contain the criteria defined in code.
Example:
def "test where query is in then block with def"() {
given:
Bundle bundle = new Bundle(name: 'bundle')
bundle.addToVersions(name: '1.0')
bundle.save(flush: true)
when:
bundle.addToVersions(name: '1.1')
bundle.save(flush: true)
then:
def result = BundleVersion.find({ name == '1.1' && bundle.name == 'bundle' })
result.name == '1.1'
}
where the result is a variable, then it works. But if the variable is omitted like this:
def "test where query is in then block without def"() {
given:
Bundle bundle = new Bundle(name: 'bundle')
bundle.addToVersions(name: '1.0')
bundle.save(flush: true)
when:
bundle.addToVersions(name: '1.1')
bundle.save(flush: true)
then: "this will fail - which is not expected"
BundleVersion.find({ name == '1.1' && bundle.name == 'bundle' }).name == '1.1'
}
When doing a query with a
.find { }
method on a domain object (in this case in a Grails 4.0.11 application) the generated detached criteria does not contain the criteria defined in code.Example:
where the
result
is a variable, then it works. But if the variable is omitted like this:Then
1.0
is found which is unexpected.An example of this behaviour can be found here: https://github.com/sbglasius/gorm-query-bug
Discovered by @Thomas58
The text was updated successfully, but these errors were encountered: