![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JPA
Maggieq8324
万事从未风过耳,一生只是梦游身
展开
-
JPA - JPQL完成复杂的多表查询
目录前言示例建表语句Entity实体JPQL多表查询完整代码前言JPA中可以通过设置实体的导航属性 + JPQL完成复杂的多表查询,简化SQL的编写。示例建表语句TableCREATE TABLE `school` ( `id` int(11) DEFAULT NULL, `name` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_原创 2021-08-20 14:49:44 · 2983 阅读 · 0 评论 -
JPA - 自定义JPQL替代JPA命名方法
目录前言JPA框架通过解析方法名称的方式生成对应的SQL,极大减少了开发工作量,JPA满足于通用情况下的简单开发工作,一些麻烦的业务情况则需手写SQL实现,JPQL应用于这种复杂场景。JPQL与SQL的区别 - SQL是面向数据库,其操作的是数据表和数据列 - JPQL操作的是实体对象和实体属性 具体应用 JPQL 语句基本格式```select 实体别名.属性名 from 实体名 实体别名 where 实体别名.实体属性 = xxx```原创 2021-08-18 14:43:09 · 1540 阅读 · 0 评论 -
JPA - @Where注解 - 添加条件查询
目录前言具体实现前言这里介绍@Where注解给Entity统一添加条件查询。具体实现Product.java@Entity@Getter@Setter@Where(clause = "delete_time is null")public class Product { @Id private int id; private String title; private Date createTime; private Date deleteT原创 2021-08-17 14:48:30 · 4106 阅读 · 0 评论 -
JPA - @Convert属性映射转换器
目录前言具体实现Map与JSON的属性转换器List与JSON属性转换器实体应用效果图前言@Convert属性转换器用于数据库属性类型与java存储的类型做转换,其方便之处在于存储与读取的时候能自动转换,如下业务场景:业务对象存在一个Map或List属性,存入数据库时需保存为json字符串,返回前端时以对象来返回。@Convert属性转换器需实现AttributeConverter<X, Y>接口,第一个泛型类型为Entity字段类型,第二个泛型类型为数据库字段类型。具体实现Map原创 2021-08-17 01:10:45 · 4441 阅读 · 0 评论 -
JPA - 使用Page进行分页
目录前言环境具体实现前言这里介绍JPA中使用Page进行分页及分页的封装,前端传递的参数类型如下形式:?start=10&count=5结果展示如下:环境SpringBoot 2.5.3 + JPA 2.5.3具体实现Product 控制器import com.coisini.springbootlearn.model.Product;import com.coisini.springbootlearn.model.common.PageCounter;import c原创 2021-08-15 23:24:24 · 4368 阅读 · 1 评论 -
JPA - 逆向生成数据表与映射关系配置
目录环境JPA逆向生成数据表映射关系配置单向一对多关系双向一对多关系单向多对多关系双向多对多关系环境SpringBoot + JPA + MysqlJPA逆向生成数据表pom.xml<!-- jpa --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artif原创 2021-08-12 15:23:58 · 1755 阅读 · 0 评论 -
JPA - @MappedSuperclass - 基类注解
目录前言代码示例前言@MappedSuperclass注解一般作为基类的注解,表眀该类是映射的超类,继承于它的子类实体在映射时会自动添加到子类实体的对应数据库表中,用于共同的属性代码复用和模型分离。代码示例BaseEntity.javaimport lombok.Getter;import lombok.Setter;import javax.persistence.MappedSuperclass;import java.util.Date;@Getter@Setter@Ma原创 2021-08-14 23:28:57 · 1802 阅读 · 0 评论