@PostLoad
@PrePersist
@PostPersist
@PreUpdate
@PostUpdate
@PreRemove
@PostRemove
@Entity
public class Human implements Serializable {
...
@Basic
@Column
private String hello;
...
public String getHello() {
return hello;
}
public void setHello(String hello) {
this.hello = hello;
}
...
@PrePersist
@PreUpdate
private void preModify () {
hello = hello.trim().toLowerCase();
}
...
}
Если в @Entity перед каким-либо полем установить аннотацию @Transient, то это поле не будет добавляться в хранилище при вызове em.persist(entity);
Бывает полезно если в entity есть какие то рабочие поля, которые не представляют ни какого поля в хранилище данных, но нужны для реализации бизнес логики приложения
Даниил, а что если сеттеров и геттров нет. И никакой специальной аннотацииу поля нет. Как будет происходить диалог с базай в этом случае?
ОтветитьУдалитьсегодня проверил - добавл в entity поле:
ОтветитьУдалитьprivate String testField = "asd";
после того как попытался сделать persist того объекта, у которого есть это поле - получил исключение javax.persistence.PersistenceException:
ERROR: колонка "testField" для связи "table111" не существует