网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

EntityListeners注解怎么在JPA中使用

EntityListeners注解怎么在JPA中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联建站主营昌邑网站建设的网络公司,主营网站建设方案,App定制开发,昌邑h5微信小程序开发搭建,昌邑网站营销推广欢迎昌邑等地区企业咨询

使用场景

EntityListeners在jpa中使用,如果你是mybatis是不可以用的

它的意义

对实体属性变化的跟踪,它提供了保存前,保存后,更新前,更新后,删除前,删除后等状态,就像是拦截器一样,你可以在拦截方法里重写你的个性化逻辑。

它的使用

定义接口,如实体追踪

/**
 * 数据建立与更新.
 */
public interface DataEntity {

 Timestamp getDateCreated();

 void setDateCreated(Timestamp dateCreated);

 Timestamp getLastUpdated();

 void setLastUpdated(Timestamp lastUpdated);

 Long getDateCreatedOn();

 void setDateCreatedOn(Long dateCreatedOn);

 Long getLastUpdatedOn();

 void setLastUpdatedOn(Long lastUpdatedOn);

}

定义跟踪器

@Slf4j
@Component
@Transactional
public class DataEntityListener {
 @PrePersist
 public void prePersist(DataEntity object)
   throws IllegalArgumentException, IllegalAccessException {
  Timestamp now = Timestamp.from(Instant.now());
  object.setDateCreated(now);
  object.setLastUpdated(now);
  logger.debug("save之前的操作");
 }

 @PostPersist
 public void postpersist(DataEntity object)
   throws IllegalArgumentException, IllegalAccessException {

  logger.debug("save之后的操作");
 }

 @PreUpdate
 public void preUpdate(DataEntity object)
   throws IllegalArgumentException, IllegalAccessException {
  Timestamp now = Timestamp.from(Instant.now());
  object.setLastUpdated(now);
  logger.debug("update之前的操作");
 }

 @PostUpdate
 public void postUpdate(DataEntity object)
   throws IllegalArgumentException, IllegalAccessException {
  logger.debug("update之后的操作");
 }

 @PreRemove
 public void preRemove(DataEntity object) {
  logger.debug("del之前的操作");

 }

 @PostRemove
 public void postRemove(DataEntity object) {
  logger.debug("del之后的操作");

 }
}

实体去实现这个对应的跟踪接口

@EntityListeners(DataEntityListener.class)
public class Product implements DataEntity {
   @Override
 public Timestamp getDateCreated() {
  return createTime;
 }

 @Override
 public void setDateCreated(Timestamp dateCreated) {
  createTime = dateCreated;
 }

 @Override
 public Timestamp getLastUpdated() {
  return lastUpdateTime;
 }

 @Override
 public void setLastUpdated(Timestamp lastUpdated) {
  this.lastUpdateTime = lastUpdated;
 }

 @Override
 public Long getDateCreatedOn() {
  return createOn;
 }

 @Override
 public void setDateCreatedOn(Long dateCreatedOn) {
  createOn = dateCreatedOn;
 }

 @Override
 public Long getLastUpdatedOn() {
  return lastUpdateOn;
 }

 @Override
 public void setLastUpdatedOn(Long lastUpdatedOn) {
  this.lastUpdateOn = lastUpdatedOn;
 }
}

看完上述内容,你们掌握EntityListeners注解怎么在JPA中使用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文题目:EntityListeners注解怎么在JPA中使用
网站路径:http://bjjierui.cn/article/gipiee.html

其他资讯