5.3 整合Spring Data JPA
2022/7/11 6:20:25
本文主要是介绍5.3 整合Spring Data JPA,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JPA CJava Persistence APD 和Spring Data 是两个范畴的概念。
Hibernate 是一个ORM 框架,而JPA 则是一种ORM 规范。而Hibernate 是这些规范的实现(事实上, 是先有Hibernate 后有JPA, JPA 规范的起草者也是Hibernate 的作者) , 因此从功能上来说, JPA 相当于H ibernate 的一个子集。
创建数据库, 不用创建表。
添加Spring Data JP A 的依赖
<dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-jpa</artifactid> </dependency>
在application .properties 中配置数据库基本信息以及JPA 相关配置
创建Book 实体类
@Entity (name = "t_book") public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(name ="book_name", nullable = false) private String name; private String author; private Float price; @Transient private String description; // getter/setter }
代码解释:
• @Entity, 在项目启动时会根据该类自动生成一张表,表的名称是@Entity 注解中name 的值,如果不配置name ,默认表名为类名。
• 所有的实体类都要有主键,@Id 表示该属性是一个主键, @GeneratedValue 表示主键自动生成, strategy 则表示主键的生成策略。
• 默认情况下,生成的表中字段的名称就是实体类中属性的名称, 通过@Column 注解可以定制生成的字段的属性, name表示该属性对应的数据表中字段的名称, nullable 表示该字段非空。
• @Transient 注解表示在生成数据库中的表时,该属性被忽略,即不生成对应的字段。
创建BookDao 接口,继承JpaRepository
public interface BookDao extends JpaReposi tory<Book , Integer> { List<Book> getBooksByAuthorStartingWith(String author); List<Book> getBooksByPriceGreaterThan(Float price); @Query(value = "select * from t_book where id=(select max(id) from t book)", nativeQuery = true) Book getMaxIdBook(); @Query("select b from t_book b where b.id>:id and b.author=:author") List<Book> getBookByidAndAuthor(@Param("author") String author, @Param("id") Integer id); @Query("select b from t_book b where b.id<?2 and b.name like %?l%") List<Book> getBooksByidAndName(String name, Integer id); }
这篇关于5.3 整合Spring Data JPA的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?
- 2024-05-09企业src漏洞挖掘-有意思的命令执行
- 2024-05-08阿里云域名注册流程,分享给第一次购买域名的新手站长!