Až Vám zčerná obrazovka, přejděte na Linux!

Proč používat Linux

pátek 21. října 2011

Grails, Searchable plugin a org.hibernate.NonUniqueObjectException

Podařilo se mi při testování Searchable plugin získat org.hibernate.NonUniqueObjectException při Create operaci. Je to způsobeno chybou při vkládání do složeného indexu. Tvůrce pluginu s tím má nějaké potíže, takže je potřeba použít workaround: je potřeba během save() vypnout mirorring a občas pro jistotu reindexovat.

def searchableService
def save = {
def polozkaInstance = new Polozka(params)
searchableService.stopMirroring()
if (polozkaInstance.save(flush: true)) {
flash.message = "${message(code: 'default.created.message', args: [message(code: 'polozka.label', default: 'Polozka'), polozkaInstance.id])}"
redirect(action: "edit", id: polozkaInstance.id)

}
else {
render(view: "create", model: [polozkaInstance: polozkaInstance])
}
searchableService.startMirroring()
}


Třeba to někomu pomůže.