返回顶部
首页 > 资讯 > 精选 >JPA中如何使用@EntityListeners注解
  • 265
分享到

JPA中如何使用@EntityListeners注解

2023-06-20 18:06:08 265人浏览 薄情痞子
摘要

这篇文章给大家介绍JPA中如何使用@EntityListeners注解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JPA实体类监听器@EntityListeners注解的使用被@Prepersist注解的方法 ,完成

这篇文章给大家介绍JPA中如何使用@EntityListeners注解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

JPA实体类监听器@EntityListeners注解的使用

被@Prepersist注解的方法 ,完成save之前的操作。

被@Preupdate注解的方法 ,完成update之前的操作。

被@PreRemove注解的方法 ,完成remove之前的操作。

被@Postpersist注解的方法 ,完成save之后的操作。

被@Postupdate注解的方法 ,完成update之后的操作。

被@PostRemovet注解的方法 ,完成remove之后的操作。

JPA中如何使用@EntityListeners注解

自定义实体类监听类:

import org.springframework.stereotype.Component;import javax.persistence.PostPersist;import javax.persistence.PostUpdate;import javax.persistence.PrePersist;import javax.persistence.PreUpdate;public class TestEntityListeners {@PrePersistpublic void PrePersist(Object entity){System.out.println("开始保存--"+entity.toString());}@PreUpdatepublic void PreUpdate(Object entity){System.out.println("开始更新--"+entity.toString());} @PostPersistpublic void PostPersist(Object entity){System.out.println("结束保存--"+entity.toString());}        @PostUpdatepublic void PostUpdate(Object entity){System.out.println("结束更新--"+entity.toString());}}

实体类上增加注解:

@EntityListeners(value = {TestEntityListeners.class})
@Entity@Table(name = "product")@EntityListeners(value = {TestEntityListeners.class})public class Product {private int id;private String productId;private String productName;    //getter setter toString()}

写两个测试保存、更新的方法:

import com.Goods.evaluate.entity.Product;import com.goods.evaluate.service.TestService1;import com.goods.evaluate.repository.ProductRepository;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional; import java.util.Optional; @Servicepublic class TestService implements TestService1 { @Autowiredprivate ProductRepository productRepository; @Transactionalpublic void testSave(){Optional<Product> product = productRepository.findById(10);productRepository.save(product.orElse(null));System.out.println("保存。。。");} @Transactionalpublic void testUpdate(){productRepository.updateProduct("test10");System.out.println("更新。。。");}}

执行结果:

JPA中如何使用@EntityListeners注解

未执行监听器内容? 暂不清楚是什么原因

这是Application的配置:

@SpringBootApplication@EnableSprinGConfigured@EnableJpaAuditing@EnableAspectJAutoProxy(proxyTargetClass=true)public class EvaluateApplication { public static void main(String[] args) {SpringApplication.run(EvaluateApplication.class, args);} }

@MappedSupperclass、@EntityListeners注解注意事项

1. @MappedSupperclass注解

(1) 该注解标注在类上,用来标识父类;

(2) 该注解标识的类不能映射到数据库,被标识的类的属性必须通过子类来映射;

(3) 该注解标识了类之后,不能再有@Entity和@Table注解标识该类

(4) 标识有该注解的类,通常属性上用以下注解@Id @GeneratedVale(strategy=GenerationType.IDENTITY) 、

@CreateDate 、 @CreateBy、@LastModifiedBy、@LastModifiedDate等注解用在父类上,子类基础该父类即可,

并在子类标注@Table和@Entity

2.@EntityListeners(AuditingEntityListener.class)注解

(1) 该注解用于监听实体类,在save、update之后的状态

(2) 使用了@EntityListeners(AuditingEntityListener.class)之后,记得在Application

启动类上加@EnableJpaAuditing,不然@CreateDate,@LastModifiedBy不生效

3.启用@EnableJpaAuditing,配置AuditorAware实现类

(1)只有使用了@EnableJpaAuditing注解,@CreateDate @LastModifiedBy等注解才会生效;

(2) 只有实现了AuditorAware接口,才会指定@CreateBy用户名信息。

//AuditorAware 实现类,指定当前操作用户信息@Configurationpublic class UserAuditorConfig implements AuditorAware<String> {    @Override    public Optional<String> getCurrentAuditor() {        return Optional.of(SpringSecurityHolder.currentUserName());    }}

关于JPA中如何使用@EntityListeners注解就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: JPA中如何使用@EntityListeners注解

本文链接: https://lsjlt.com/news/299412.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JPA中如何使用@EntityListeners注解
    这篇文章给大家介绍JPA中如何使用@EntityListeners注解,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JPA实体类监听器@EntityListeners注解的使用被@Prepersist注解的方法 ,完成...
    99+
    2023-06-20
  • 基于JPA实体类监听器@EntityListeners注解的使用实例
    JPA实体类监听器@EntityListeners注解的使用 被@Prepersist注解的方法 ,完成save之前的操作。 被@Preupdate注解的方法 ,完成update之前...
    99+
    2024-04-02
  • Jpa 如何使用@EntityListeners 实现实体对象的自动赋值
    1、简介 1.1 @EntityListeners 官方解释:可以使用生命周期注解指定实体中的方法,这些方法在指定的生命周期事件发生时执行相应的业务逻辑。 简单来说,就是监听实体对象...
    99+
    2024-04-02
  • SpringBoot JPA常用注解如何使用
    这篇文章主要讲解了“SpringBoot JPA常用注解如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot JPA常用注解如何使用”吧!1. 简介...
    99+
    2023-07-05
  • JPA之@EnableJpaAuditing注解使用
    目录@EnableJpaAuditing注解使用如何实现自动填充功能,即如何使用审计?Springboot启用Spring Data JPA Auditing(审计功能)Auditi...
    99+
    2024-04-02
  • Jpa怎么使用@EntityListeners实现实体对象的自动赋值
    这篇文章主要介绍“Jpa怎么使用@EntityListeners实现实体对象的自动赋值”,在日常操作中,相信很多人在Jpa怎么使用@EntityListeners实现实体对象的自动赋值问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-06-20
  • 在JPA的@Query注解中使用limit条件(详解)
    在@Query注解注释的JPQL语句中写limit语句是会报错的unexpected token :limit near line ....解决方法是讲@Query注解中的limit语句去掉,然后传一个Pageable pageable=n...
    99+
    2023-05-31
    query注解 limit jpa
  • Spring Data JPA注解Entity怎么使用
    要使用Spring Data JPA注解@Entity,首先需要创建一个实体类并在类名上添加@Entity注解。这告诉Spring ...
    99+
    2024-03-02
    Spring
  • jpa使用注解生成表时无外键问题如何解决
    这篇“jpa使用注解生成表时无外键问题如何解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“jpa使用注解生成表时无外键问题...
    99+
    2023-07-02
  • Spring Data JPA注解Entity使用示例详解
    目录1、JPA协议中关于Entity的相关规定需要注意的是:2、常用注解2.1 JPA支持的注解2.2 常用注解3、联合主键3.1 @IdClass3.2 @Embeddable与@...
    99+
    2024-04-02
  • 详解Spring Data JPA使用@Query注解(Using @Query)
    经过几天的折腾,终于到了学习一个重量级的查询方式上,使用@Query注解,使用注解有两种方式,一种是JPQL的SQL语言方式,一种是原生SQL的语言,略有区别,后者我们更熟悉一些。话不多说,看代码。1、在CustomerRepository...
    99+
    2023-05-31
    spring data jpa
  • Java5.0中注解如何使用
    这篇文章将为大家详细讲解有关Java5.0中注解如何使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。元注解Meta-annotation元注解的作用就是负责注解其他注解。Java5.0定义...
    99+
    2023-06-20
  • 基于JPA中的@Basic注解详解
    今天我们来聊聊JPA @Basic注解的使用 1.介绍: @Basic 是实体类与数据库字段映射时最简单的类型。 在该注解的介绍中: The <code>Basic&...
    99+
    2024-04-02
  • Spring Data JPA 注解Entity关联关系使用详解
    目录1、OneToOne关联关系1.1 解读OneToOne源码1.2 mappedBy 注意事项1.3 CascadeType 用法1.4 orphanRemoval属性用法1.5...
    99+
    2024-04-02
  • JPA中的update如何使用@Query 实现
    今天就跟大家聊聊有关JPA中的update如何使用@Query 实现,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。使用JPA中@Query 注解实现update 操作,代码如下:@T...
    99+
    2023-05-31
    jpa @query update
  • 如何解决Spring JPA 使用@transaction注解时产生CGLIB代理冲突问题
    本篇内容介绍了“如何解决Spring JPA 使用@transaction注解时产生CGLIB代理冲突问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能...
    99+
    2023-06-20
  • jpa中orphanRemoval=true如何理解
    在JPA中,orphanRemoval=true是指当一个实体对象被从关联的集合中删除时,它将被标记为孤立状态,并且将被从数据库中删...
    99+
    2023-09-08
    jpa
  • spring中如何使用@Service注解
    本篇文章为大家展示了spring中如何使用@Service注解,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。@Service注解的使用要说明@Service注解的使用,就得说一下我们经常在sprin...
    99+
    2023-06-20
  • Java中如何使用Spring注解
    Java中如何使用Spring注解,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在Spring4之后,要使用注解开发,必须要保证aop的包导入了使用注解需要导入contex...
    99+
    2023-06-20
  • springboot中@component注解如何使用
    这篇文章主要介绍“springboot中@component注解如何使用”,在日常操作中,相信很多人在springboot中@component注解如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”spr...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作