我有一个名为recInfo的实体,它包含一些关于创建和修改几个实体中的条目的信息。
此时,实现是使用setter完成的,因此每次我想在其中一个实体中添加一个条目时,我必须创建一个新的recInfo并将其设置为我的实体的recInfo字段。
我正在考虑为这几个实体添加一个监听器,每当有人创建新的或修改它时保存时间戳,创建它的用户(使用sessionContext.getCallerPrincipal().toString();
我已查看过文档,但我发现很难理解如何将侦听器应用于实体中的更改!
答案 0 :(得分:2)
JPA回调用于此目的。
public class EntityListener {
@PrePersist
@PreUpdate
public void setRecInfo(Entity entity) {
RecInfo recInfo = new RecInfo();
// TODO set recInfo fields
entity.setRecInfo(recInfo);
}
}
@Entity
@EntityListeners (value = {EntityListener.class})
public class Entity {
private RecInfo recInfo;
public RecInfo getRecInfo() { return recInfo };
public void setRecInfo(RecInfo recInfo) { this.recInfo = recInfo };
}