springJpa介绍
springjpa 是springdata下面的框架用来对接数据 是门面框架定义 数据交互到数据库,很多的接口规范使用的是 JPA规范 *javax.persistence.** ,我们选择内部实现为habernate ,具体的实现可以选择xxxx等,
下面是关于spring -orm的介绍Spring - ORM Framework - GeeksforGeeks
Spring-ORM is a technique or a Design Pattern used to access a relational database from an object-oriented language. ORM (Object Relation Mapping) covers many persistence technologies. They are as follows:
- JPA(Java Persistence API): It is mainly used to persist data between Java objects and relational databases. It acts as a bridge between object-oriented domain models and relational database systems.
- JDO(Java Data Objects): It is one of the standard ways to access persistent data in databases, by using plain old Java objects (POJO) to represent persistent data.
- Hibernate – It is a Java framework that simplifies the development of Java applications to interact with the database.
- Oracle Toplink, and iBATIS: Oracle TopLink is a mapping and persistence framework for Java development.
需要了解常用的注解
- 支持基于 Spring 和 JPA 构建存储库
- 支持Querydsl谓词,因此支持类型安全的 JPA 查询
- 透明审计
- 分页支持、动态查询执行、集成自定义数据访问代码的能力
@Query
在引导时验证带注释的查询- 支持基于 XML 的实体映射
- 通过引入基于 JavaConfig 的存储库配置
@EnableJpaRepositories
字段映射
1 | @Table(name = "malfunction_report") //标记表的名称 |
查询继承JpaRepository
直接可以字段拼接一个简单的查询,在继承了JpaRepository后可以发现,
注解query
使用注解可以使用jpa定义的hql来查询利用对象的映射关系,而且比较存在的ORM(Object-Relational Mapping)逻辑,同时如果部分字段需要调用特殊的函数也支持直接写SQL,需要在SQL后用逗号分割讲native设置为true
查询继承JpaSpecificationExecutor的灵活查询
org.springframework.data.jpa.domain.Specification 需要实现toPredicate这里需要多个学习多个对象
Root
root 主要要使用
CriteriaQuery<?> query
criterialQuery ToDo
CriteriaBuilder criteriaBuilder
CriteriaBuilder todo
1 | javax.persistence.criteria.Predicate |
上述对象能最大程度实现灵活的查询,加上 org.springframework.data.domain.Page可以最大程度的满足查询的需要
编辑和新增数据
在自己实现的方法需要 @modify才会生效