`
louisling
  • 浏览: 140704 次
  • 性别: Icon_minigender_1
  • 来自: ZhuHai
社区版块
存档分类
最新评论

JPA.MappedSuperclass and JPA.EntityListeners

    博客分类:
  • JPA
阅读更多
@MappedSuperclass
@EntityListeners( { PersistenceObjectListener.class })
public abstract class AbstractPersistenceObject implements PersistenceObject {
    private Timestamp version;
    private String createdBy;
    private String updatedBy;

    @Column(name = "CREATED_BY", length = 20, nullable = true)
    public String getCreatedBy() {
        return createdBy;
    }
}


public class PersistenceObjectListener {
    private static final Log logger = LogFactory.getLog(PersistenceObjectListener.class);

    @PrePersist
    @PreUpdate
    public void setUser(AbstractPersistenceObject abstractPersistenceObject) {
        Map<?, ?> curSessionMap = (Map<?, ?>) ThreadLocalManager.getValue();
        if (curSessionMap == null || curSessionMap.size() == 0) {
            logger.debug("The current session map is null");
            return;
        }

        Object loginName = curSessionMap.get(Constant.RETURN_MAP_LOGIN_NAME_KEY);
        if (loginName != null && !"".equals(loginName)) {
            String createdBy = abstractPersistenceObject.getCreatedBy();
            if (createdBy == null || "".equals(createdBy)) {
                abstractPersistenceObject.setCreatedBy(String.valueOf(loginName));
            }
            abstractPersistenceObject.setUpdatedBy(String.valueOf(loginName));
        }
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics