У меня проблемы с производительностью при использовании тега. В некоторых таблицах базы данных у меня есть тысячи записей, и когда я пытаюсь отредактировать какое-то поле в Grails, тег генерирует выпадающий список всех записей в таблице, что иногда вызывает реальные проблемы с производительностью, и иногда даже EndOfMemorryError. Сгенерированный html огромен, я пытался реализовать метод автозаполнения для листинга, но результат не удовлетворил, потому что я хочу, чтобы это было глобальным решением для моих 300 классов Java, и если я использовал автозаполнение, мне пришлось написать его для каждый из моих классов, теперь моя идея состоит в том, чтобы попытаться изменить выпадающий список с помощью всплывающих окон, которые отображают записи с использованием нумерации страниц. Я считаю, что я должен изменить этот код в renderEditor.template:
private renderManyToOne(domainClass,property) {
if (property.association) {
def sb = new StringBuilder()
sb << '<g:select'
// id is "x" and name is "x.id" as the label will have for="x" and "." in an id will confuse CSS
sb << ' id="' << property.name << '"'
sb << ' name="' << property.name << '.id"'
sb << ' from="${' << property.type.name << '.list(max: 10, offset: offset)}"'
sb << ' optionKey="id"'
if (isRequired()) sb << ' required=""'
sb << ' value="${' << "${domainInstance}?.${property.name}" << '?.id}"'
sb << ' class="many-to-one"'
sb << renderNoSelection(property)
sb << '/>'
sb as String
}
}
Будут оценены любые идеи:)