rendered paste body... domain classclass ClassWithDerivedProperty { Integer a Integer b Integer aTimesB static mapping = { aTimesB formula: 'A*B' }}... integration test class ClassWithDerivedPropertyTests extends GroovyTestCase { void testIsDerivedPropertySearchable () { /* a*b == 1 */ new ClassWithDerivedProperty(a:1, b:1).save() new ClassWithDerivedProperty(a:1, b:1).save() new ClassWithDerivedProperty(a:1, b:1).save() assert ClassWithDerivedProperty.findAllByATimesB(1).size() == 3 /* a*b = 10 */ new ClassWithDerivedProperty(a:2, b:5).save() new ClassWithDerivedProperty(a:2, b:5).save() assert ClassWithDerivedProperty.findAllByATimesB(10).size() == 2 } void testIsDerivedPropertyNotNull() { def obj = new ClassWithDerivedProperty(a:2, b:5) obj.save() obj = ClassWithDerivedProperty.get(obj.id) assertNotNull obj assertNotNull obj.aTimesB //fails! }}