2017-02-13 16 views
0

Я не смог вставить данные в свой класс домена DbUser.groovy. Когда Iam вызывает метод ниже.Не имеет исключения по умолчанию в Grails

\t def insertDbuserDetails(Map Hmap){ 
 
\t \t try{ 
 
\t \t \t def emp = Employee.get(Hmap.get("empId")) 
 
\t \t \t if(emp){ 
 
\t \t \t def Username = springSecurityService.getPrincipal().getUsername() 
 
\t \t \t def row = DbUser.findByEmployee(emp) 
 
\t \t \t if(!row){ 
 
\t \t \t def data = new DbUser(employee:emp,username:Hmap.get("userName"),password:Hmap.get("password"),client:Hmap.get("client"),create_id:Username,create_dt:new Date(),mod_id:null,mod_dt:null) 
 
\t \t \t data.save(failOnError: true) 
 
\t \t \t return data 
 
\t \t \t }else{ 
 
\t \t \t return "exist" 
 
\t \t \t } 
 
\t \t }else{ 
 
\t \t return "invalid" 
 
\t \t } 
 
\t \t } 
 
\t \t \t catch(Exception e){ 
 
\t \t \t println("Exception in getDbuserDetails() of DbuserService.groovy: "+e); 
 
\t \t \t } 
 
\t \t }

он дает мне ошибку, как

Ошибка | 2017-02-10 18: 44: 08,307 [http-bio-8080-exec-4] ERROR spi.SqlExceptionHelper - поле «employee» не имеет значения по умолчанию Исключение в getDbuserDetails() DbuserService.groovy: org .springframework.dao.DataIntegrityViolationException: Операция спящего режима: не удалось выполнить оператор; SQL [n/a]; Поле «employee» не имеет значения по умолчанию; вложенное исключение - java.sql.SQLException: поле «employee» не имеет значения по умолчанию

Ошибка | 2017-02-10 18: 44: 08,328 [http-bio-8080-exec-4] ОШИБКА hibernate.AssertionFailure - HHH000099: произошла ошибка утверждения (это может указывать на ошибку в спящем режиме, но, скорее всего, из-за небезопасного использования сеанса): org.hibernate.AssertionFailure: null id в записи com.domain.gcg.DbUser (не очищать сеанс после возникновения исключения)

Ошибка | 2017-02-10 18: 44: 08,469 [http-bio-8080-exec-4] Ошибки ERROR.GrailsExceptionResolver - AssertionFailure возникла при обработке запроса: [POST]/UserManagement/dbuser/addDbuserDetails - параметры: Repassword: pass123 клиент: testclient пароль: pass123 EmpId: SE357 EmpName: Abhilash Shajan Имя пользователя: Abhi123 нулевой идентификатор в записи com.domain.gcg.DbUser (не сбрасывают сессии после того, как происходит исключение). StackTrace следующим образом: сообщения: нулевой идентификатор в записи com.domain.gcg.DbUser (не сбрасывают сессии после того, как происходит исключение)

Вот мой DbUser.groovy класс домена

class DbUser { 
 
\t \t 
 
\t Employee employee 
 
\t String client 
 
\t String username 
 
\t String password 
 
\t String create_id 
 
\t Date create_dt 
 
\t String mod_id 
 
\t Date mod_dt 
 
\t 
 
\t static mapping = { 
 
\t \t version true 
 
\t \t dynamicUpdate true 
 
\t \t password type: GormEncryptedStringType 
 
       employee column: '`employee`',generator: 'foreign', params: [ property: 'employee'], insertable: false, updateable: false 
 
    } 
 

 
\t static constraints = { 
 
\t \t mod_id(nullable: true) 
 
\t \t mod_dt(nullable: true) 
 
\t }

Может кто-нибудь мне помочь?

+0

Это тот же вопрос, что и раньше. Вы пытались воссоздать базу данных, как я предложил? (просто удалите все таблицы и запустите приложение grails заново и позвольте ему снова создавать таблицы. –

+0

@MikelisBaltruks Я удалил свою базу данных и создал новую, но проблема все еще существует. :-( –

ответ

1

Проверьте свое сопоставление, вы вставляете и обновляете = false в поле сотрудника, и вы пытаетесь обновить это поле.

+0

Для меня это был отличный ответ. –

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

  • Нет связанных вопросов^_^