Когда я использую критерии запросов,
результат содержит массив списков ленивых
инициализированные объекты. то есть список
имеет значения с обработчиком
org.codehaus.groovy.grails.orm.hibernate.proxy.GroovyAwareJavassistLazyInitializer.
Это мешает мне делать любой массив
операция (минус, удалить и т. д.) в нем.
Когда я использую методы GORM, я получаю массив
список актуальных типов объектов. Как может
Я получаю реальные объекты по критериям
запрос? Код указан ниже.
availableTypes = Type.withCriteria() {<br>
'in'("roleFrom", from)
'in'("roleTo", to)
}
availableTypes (список массивов) имеет
одно значение, но не фактический объект, но
значение с обработчиком
GroovyAwareJavassistLazyInitializer
availableTypes = Type.findByRoleFrom(from)
availableTypes (список массивов) имеет
значения с типом Тип
---------- Обновление ----------
я сделал дальнейшее устранение неполадок, и это то, что я нашел. Возможно, приведенное выше описание может вводить в заблуждение, но я сохранил его на случай, если оно поможет.
- При первом использовании findAllBy я получаю прокси-объекты, а не фактический экземпляр. Затем я вызываю метод через вызов ajax, фактический экземпляр загружается (что-либо связанное с загрузкой кэша ??). Когда я обновляю страницу, она снова загружает прокси
def typeFrom = Type.findAllByParty(partyFrom)
- в том же методе есть другое использование findAllBy, которое всегда возвращает фактические экземпляры.
def relFrom = Relation.findAllByParty(partyFrom)
- При сравнении двух классов атрибут 'party' класса Roles является частью 1-m отношения. как
class Role {
RoleType roleType<br>
LocalDate validFrom<br>
LocalDate validTo<br>
static belongsTo = [party : Party ]<br>
...<br>
}
Я знаю, что если я сделаю оператор наподобие Party.findAll (), экземпляры роли будут прокси, пока они не получат доступ. Но, когда я использую gorm непосредственно в классе (Role), почему я получаю прокси-объекты ???
спасибо за помощь.
спасибо.