Использование переходного свойства в методах findBy или listOrderBy - PullRequest
5 голосов
/ 05 ноября 2011

У меня есть класс домена, использующий некоторое временное свойство foo. Теперь я хочу использовать listOrderByFoo для этого свойства, но получаю сообщение об ошибке «не удалось разрешить свойство: foo». Есть ли способ использовать временные свойства в listOrderByProperty () или findByProperty ()?

class Bar {
 String name
 static transients = ['foo']
 def getFoo() {
   ...
 }
}

Bar.findAllByFooIsNotNull()
Bar.listOrderByFoo()

1 Ответ

11 голосов
/ 05 ноября 2011

К сожалению нет.Как сказал Мэтт в своем комментарии к вашему вопросу, поскольку эти поля помечены как временные, они не сохраняются в базе данных, и поэтому у вас нет возможности запросить их.Если вы хотите найти или составить список по временному свойству, вам нужно написать замыкание для перебора списка объектов с уже установленным временным свойством.Нет динамического метода GORM, который вы можете использовать для этого.

def bars = [ new Bar(foo:1), new Bar(foo:2), new Bar(foo:4), new Bar(foo:3) ];

// Find bar with foo=3
bars.find { it.foo == 3 }

// Sort bars by foo
bars.sort { a,b -> a.equals(b)? 0: a.foo<b.foo? -1: 1 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...