2014-11-18 2 views
0

У меня есть класс домена, в котором я объявляю id как строку и в идентификаторе отображения сопоставляется с ROWID. Я не хочу, чтобы этот идентификатор принимал участие в операции вставки. Но, продолжая через домен, я получаю ошибку, например: null id in com.bt.viewer.TCircuitDetails entry Может ли кто-нибудь помочь в отношении: нужно ли упоминать столбец базы данных для id? В запросе gorm, который встраивает sql, генерирует последовательность спящего режима для id, который я не могу использовать для любого столбца.Сохранение данных по домену grails без id

Я могу назначить id одному столбцу первичного ключа, который есть в базе данных, но id принимает только последовательность спящего режима, поэтому я не могу сопоставить идентификатор с любым из столбцов. Я не могу изменить таблицу с добавлением нового столбца в разместить значение id.

Что такое solution.Please помочь

спасибо ..

+0

Чтобы уточнить: вы пытаетесь создать свои собственные значения для столбца 'id' и не хотите, чтобы Hibernate генерировал свой собственный идентификатор под любым именем вообще? –

+0

Да. Я хочу вставить некоторое числовое числовое значение в столбец id, а не в спящий режим. –

ответ

0

Вам необходимо переопределить генератор тождественное по умолчанию библиотеки Hibernate - here является соответствующая глава в документации Grails, который в основном указывает вам Hibernate документации.

Из того, что я собираюсь, вам нужно было бы реализовать обычай IdentifierGenerator, как это делал this человек для своего проекта.

Я не знаю, почему вы пытаетесь определить свои собственные идентификаторы, но, возможно, для вас будет работать следующее упрощенное решение: пусть Grails/Hibernate сохранит свой идентификатор в другом столбце (скажем hibernate_id), а затем вы можете использовать id для ваших целей, вставив id column: 'hibernate_id' в блок mapping (см. Ссылку на документацию Грайля). Однако вам нужно будет использовать DomainClass.findById() вместо DomainClass.get().

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