Как выполнить метод непосредственно перед сохранением модели?
Например, хеширование паролей в пользовательской модели.
Аннотации @Before
для моделей не существует.
Я использую PlayFramework 1.2.x
PS: я планирую использовать его с модулем CRUD.
Как выполнить метод непосредственно перед сохранением модели?
Например, хеширование паролей в пользовательской модели.
Аннотации @Before
для моделей не существует.
Я использую PlayFramework 1.2.x
PS: я планирую использовать его с модулем CRUD.
Ознакомьтесь с коллекцией Pre*
аннотаций в JPA. Например, PrePersist
и PreUpdate
.
В вашей модели просто вставьте нужную аннотацию в метод, который вы хотите вызвать.
@PrePersist
public void hashPassword(){
// do stuff
}
Другим вариантом может быть переопределение метода save()
для конкретной модели, но я бы не стал этого делать, если в этом нет крайней необходимости. Я бы придерживался API-интерфейсов JPA, если они предлагают решение, но это только мое мнение.
save()
. Как оказалось, переопределение save()
не такая уж плохая идея, потому что он вызывает _save()
, который содержит реальную бизнес-логику, см. stackoverflow.com/a/5419083/492561
- person Gautam; 20.05.2012