У вас есть несколько вопросов.
1) Вы присваиваете переменную-член, но она никогда не инициализируется, поэтому вы получаете исключение NullPointerException.Вы должны сначала получить экземпляр из своей базы данных по идентификатору.
2) Помните, что контроллер должен быть поточно-ориентированным, назначив переменную-член в области видимости контроллера, он будет использоваться для многих вызовов вв то же время с непредсказуемым результатом.
3) Такие имена, как ABCDCode, противоречат соглашениям по присвоению имен Грааля.Используйте AbcdCode для домена и AbcdCodeService для службы, и все в порядке.
Это будет правильным подходом для класса домена AbcdCode и соответствующего сервиса AbcdCodeService:
// if not in the same module
import AbcdCode
class TestController {
// correct injection of the service
def abcdCodeService
// ids are Long, but you could omit the type
def index(Long id) {
// get instance from database by id, moved to method scope
def abcdCode = AbcdCode.get(id)
// note the "?." to prevent NullpointerException in case
// an abcdCode with id was not found.
def data = abcdCode?.getData()
}
}