Spring全家桶
文章平均质量分 86
菡萏如佳人
不为有趣之事,何遣有涯之生。
展开
-
SpringDataJPA系列(7)Jackson注解在实体中应用
Springboot中默认集成的是Jackson,我们可以在jackson依赖包下看到Jackson有多个注解。1处:指定序列化时候的顺序,先createDate然后是email。2处:将name进行序列化时改成my_name。3处:更新时间序列化时按照给出的格式要求。将一些数据缓存到redis或其它缓存中时。4处:不序列化sex,报文中并没有出现。将调用解耦,使用JMS消息序列化时。SpringMVC的请求参数转换。微服务之间调用报文的转换。5处:不序列化的字段。原创 2024-09-07 21:45:00 · 166 阅读 · 0 评论 -
SpringDataJPA系列(6)Entiry注解使用
Inheritance 的这种使用方式会逐渐被淘汰,因为这样的表的设计很复杂,本应该在业务层面做的事情(多态),而在 datasoure 的表级别做了。这里只提及一些最常见的,包括 @Entity、@Table、@Access、@Id、@GeneratedValue、@Enumerated、@Basic、@Column、@Transient、@Lob、@Temporal 等。在使用的时候,Embedded 用的是对象,而 IdClass 用的是具体的某一个字段,二者的JPQL 也会不一样。原创 2024-09-05 21:45:00 · 782 阅读 · 0 评论 -
SpringDataJPA系列(5)@Query应该怎么用?
能用方法名表示的,尽量用方法名表示,因为这样语义清晰、简单快速,基本上只要编译通过,一定不会有问题能用 @Query 里面的 JPQL 表示的,就用 JPQL,这样与 SQL 无关,万一哪天换数据库了,基本上代码不用改变最后实在没有办法了,可以选择 nativeQuery 写原始 SQL,特别是一开始从 MyBatis 转过来的同学,选择写 SQL 会更容易一些。原创 2024-09-03 21:30:00 · 955 阅读 · 0 评论 -
SpringDataJPA系列(4)Repository 中的方法返回值使用
然后定义单独的查询方法下面是测试结果代码:这里需要注意的是,如果我们去看源码的话,看关键的 PreferredConstructorDiscoverer 类时会发现,UserDTO 里面只能有一个全参数构造方法。所以这种方式的优点就是返回的结果不需要是个实体对象,对 DB 不能进行除了查询之外的任何操作。缺点就是因为DTO要实现转化必须要有set方法,一旦有 set 方法就可以改变里面的值,构造方法不能更改,必须全参数,这样如果是不熟悉 JPA 的新人操作的时候很容易引发 Bug。原创 2024-09-02 14:08:14 · 1138 阅读 · 0 评论 -
SpringDataJPA系统(3)Defining Query Methods的命名语法与参数
若想要实现 CRUD 的操作,常规做法是写一大堆 SQL 语句。但在 JPA 里面,只需要继承 Spring Data Common 里面的任意 Repository 接口或者子接口,然后直接通过方法名就可以实现,神不神奇?比如我们要增加一个根据Email地址来查询用户,可以在接口中这么写:然后你不用写具体的实现就可以直接使用该方法来达到根据邮箱地址查询用户的目的了,测试下该方法,完全没问题DQM的命名规范值得我们去借鉴,在我们开发的给一些方法取名字的时候可以按照这个规范去执行,有利于提升方法的表意性。原创 2024-08-27 13:39:51 · 909 阅读 · 0 评论 -
SpringDataJPA系列(2)Commons核心Repository
在接触了 Repository 的源码之后,我们在工作中遇到过一些类似需要抽象接口和写动态代理的情况,可以从Repository 的源码中获得这些启发:上面的 7 个大 Repository 接口,我们在使用的时候可以根据实际场景,来继承不同的接口,从而选择暴露不同的 Spring Data Common 给我们提供的已有接口。这其实利用了 Java 语言的 interface 特性,在这里可以好好理解一下 interface 的妙用。原创 2024-06-30 11:00:00 · 607 阅读 · 0 评论 -
SpringDataJPA系列(1)JPA概述
SpringDataJPA似乎越来越流行了,我厂的mysql数据库和MongoDB数据库持久层都依赖了SpringDataJPA。为了更好的使用它,我们内部还对MongoDB的做了进一步的抽象和封装。为了查漏补缺,温故而知新,整理下SpringDataJPA相关知识,Check下实践过程中哪些地方还存在哪些不足,从而进一步的优化之。原创 2024-06-29 21:43:30 · 800 阅读 · 0 评论