2014-12-08 2 views
0

У меня проблема! нужно получить объект json, который уже имеет уже установленный идентификатор, который еще не сохранен. но при попытке создать идентификатор объекта имеет значение null. И он устанавливается только при вызове метода сохранения, генерирующего разные идентификаторы. например:Создать объект из JSON с предопределенным id в Grails


objetoJson = {id: "123413215123", name: "Leonan Teixeira", address: {id: "12345", city: "Victory", state: "Bahia"}} def person = new Person (objetoJson) конечное состояние объекта:

Person.id = нуль Person.Address = нуль


, но мне нужно идентификатор хранится. то же самое происходит, если я person.properties = objetoJson

Мои классы сопоставляются с идентификатором '' UUID

String id; static mapping = { id generator: 'uuid' }

Solution

добавить привязываемому: верно ограничения

class MyDomain { static constraints = { // allow binding of "id" attribute (e.g. in constructor or url parameters) id bindable: true } }

http://www.redcube.de/assigning-id-domain-objects-grails-via-constructor/

+0

Вы используете реализацию Hibernate GORM или что-то еще, как Монго, Redis ..? –

+0

Я использую Hibernate GORM! –

ответ

0

Попробуйте это:

def jsonSlurper = new JsonSlurper() 

def dataPerson = jsonSlurper.parseText('{ "id":"123456789", "nome": "Leonardo Meurer", "age":"29" }') 

def person = new Person (dataPerson) 
+0

правый, но идентификатор «123456789» получает нуль! реализация моих классов имеет определение идентификатора статического отображения = { генератора идентификатора, «UUID» } –

+0

Вы пробовали генератор: «назначены»? – meurer

+0

пытался здесь, и это не работает, работает только тогда, когда она определяется непосредственно person.id = 123456789 но нужно загрузить из JSON –

Смежные вопросы