In
class AbstractClass {
User user
}
the class has a property whose name is user
(small u) and whose type is User
(capital U), therefore
new Category(User: user1, name: 'alice')
should be
new Category(user: user1, name: 'alice')
to match the property name. Remember Groovy, like Java, is case sensitive.