mysql的配置
首先在maven中引入依赖:
1 | <dependency> |
然后在配置文件中配置:
1 | spring: |
JPA的使用
基础配置使用
首先在maven中引入依赖:
1 | <dependency> |
然后在配置文件中设置(打印sql):
1 | jpa: |
新建entity包并创建文件:
1 |
|
如果类名和表名的关系不是驼峰转下划线的关系的话,我们可以使用@Table注解来配置表名:
1 | "t_product_category") (name = |
新建repository包并创建Repository接口:
1 | public interface ProductCategoryRepository extends JpaRepository<ProductCategory, Integer> { |
DynamicUpdate注解说明
在实际业务场景中,我们经常会从数据库中查出一条数据,对其做一些修改后再更新数据库,如果我们更新时将原来的update_time传入,就会使数据库默认的update_time失效。
这时我们可以为entity类加上DynamicUpdate注解自动更新数据库时间。
1 |
|
测试方法
我们可以写一个测试类来测试表的增删改查:
1 | (SpringRunner.class) |
常见错误
如果编辑器报错:
1 | Inferred type 'S' for type parameter 'S' is not within its bound; |
这是由于使用SpringBoot是2版本但直接调用了find方法如下:
1 | ProductCategory one = repository.findById(1); |
这在SpringBoot 2.X中已经不允许了。
将版本换回1.5.4。
写成以下形式:
1 | ProductCategory one = repository.findById(1).orElse(null); |
如果编辑器报错:
1 | Table 'sell.hibernate_sequence' doesn't exist |
如果我们使用以下写法就会报错,这也是因为SpringBoot2.X使用了hibernate5导致的。
1 |
版本切换
写成如下形式:
1 | (strategy = GenerationType.IDENTITY) |