В моем приложении у меня есть объект «Домен пользователя», в котором есть несколько полей, включая поле пароля.Поле пароля представляет собой зашифрованную строку с использованием JASYPT.Для целей разработки я создаю нового пользователя при запуске, который жестко запрограммирован.Это выглядит так:
User user = new User(
userId:"user1", userFname:"Joe",
userLname:"Blow", userMinit:"A",
userEmail:"joe@blow.com", userPword:"password").save()
Когда вызывается функция save (), я считаю, что в фоновом режиме вызывается функция saveOrUpdate () в спящем режиме.Он сравнивает значения полей новых объектов домена с уже существующими значениями полей объекта домена, чтобы определить, должна ли запись быть вставлена в базу данных или просто обновлять уже существующую запись.
Поскольку поле пароля всегдабудет новое значение из-за шифрования JASYPT каждый раз будет вставлять новую запись.
INSERT INTO USER VALUES(1,'joe@blow.com',
'Joe','user1','Blow','A','','','',
'gIkUvM9b6d5vrEhkKzqKz0U7uxqRpZFhiQrrBTDbKX0=')
INSERT INTO USER VALUES(2,'joe@blow.com',
'Joe','user1','Blow','A','','','',
'yap0S0mCb2CpGngcANpSWoLqlL6SozLYK4WbKYHSVEw=')
Вот класс домена:
@Table(name="user")
class User {
String userId
String userFname
String userLname
String userMinit
String userEmail
String userPword
String userMisc1 = ""
String userMisc2 = ""
String userMisc3 = ""
public User(){};
static mapping = {
version false
columns {
userId column:'user_id'
userFname column:'user_fname'
userLname column:'user_lname'
userMinit column:'user_minit'
userEmail column:'user_email'
userPword column:'user_pword'
userMisc1 column:'user_misc1'
userMisc2 column:'user_misc2'
userMisc3 column:'user_misc3'
}
userPword type: GormEncryptedStringType
}
static constraints = {}
}
Есть ли способ сказать,GORM игнорировать поле пароля при сохранении объекта домена, чтобы я не попадал с одним и тем же пользователем снова и снова в БД?
Спасибо за любую помощь.