Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

第 73 章 Spring Data with MySQL

目录

73.1. 选择数据库表引擎
73.2. 声明实体
73.2.1. @Entity 声明实体
73.2.2. @Table 定义表名
73.2.3. @Id 定义主键
73.2.4. @Column 定义字段:
73.2.5. 非数据库字段
73.2.6. @Lob 注解属性将被持久化为 Blog 或 Clob 类型
73.2.7. @NotNull 不能为空声明
73.2.8. @Temporal 日期定义
73.2.9. 创建日期
73.2.10. @DateTimeFormat 处理日期时间格式
73.2.11. Enum 枚举数据类型
73.2.12. SET 数据结构
73.2.13. JSON 数据类型
73.2.14. 嵌入
73.2.15. @JsonIgnore
73.2.16. @EnableJpaAuditing 开启 JPA 审计功能
73.2.17. 注释 @Comment
73.2.18. @Pattern 数据匹配
73.2.19. 实体继承
73.3. 映射集合属性
73.3.1. List 集合
73.3.2. 数组集合
73.3.3. Map 集合
73.3.4. Set 集合
73.3.5. 外键名称
73.3.6. 集合表子查询
73.4. 外键
73.4.1. @JoinColumn
73.4.2. @OneToOne
73.4.3. OneToMany 一对多
73.4.4. ManyToMany 多对多
73.4.5. 外键级联删除
73.4.6. 外键级联操作
73.4.7. @JoinTable
73.4.8. @OrderBy
73.4.9. @JsonIgnoreProperties
73.4.10. 允许外键为 NULL
73.4.11. 只要外键,不要数据结构
73.5. 索引
73.5.1. 普通索引
73.5.2. 组合索引
73.5.3. 唯一索引
73.6. Repository
73.6.1. JpaRepository
73.6.2. CrudRepository
73.6.3. PagingAndSortingRepository
73.6.4. findByXXX
73.6.5. count 操作
73.6.6. delete 删除操作
73.6.7. IsNull
73.6.8. In/NotIn
73.6.9. TRUE / FALSE
73.6.10. Before/After
73.6.11. OrderBy
73.6.12. GreaterThan
73.6.13. Sort 排序操作操作
73.6.14. Pageable 翻页操作
73.6.15. @DynamicInsert 与 @DynamicUpdate
73.6.16. 继承已存在的 Repository
73.6.17. 自定义返回字段
73.7. TransactionTemplate
73.8. JPQL @Query
73.8.1. @Modifying 更新/删除
73.8.2. 参数传递
73.8.3. 原生 SQL 操作
73.8.4. @Query 与 Pageagble
73.8.5. 返回指定字段
73.8.6. 返回指定的模型
73.8.7. 通过定义接口,返回指定字段
73.8.8. 修改返回数据
73.8.9. 事务 @Transactional
73.8.10. IN / NOT 子查询
73.9. FAQ 常见问题
73.9.1. Could not write JSON: failed to lazily initialize a collection of role
73.9.2. Query did not return a unique result: 2 results were returned
73.9.3. Executing an update/delete query
73.9.4. could not initialize proxy [cn.netkiller.domain.Device#16] - no Session
73.9.5. this is incompatible with sql_mode=only_full_group_by
73.9.6. A TupleBackedMap cannot be modified

73.1. 选择数据库表引擎

正常创建表会使用数据库默认引擎,有时数据库默认引擎并不是我们需要的,通过下面配置可以指定表引擎

			
# Spring boot 1.x.x
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect

# Spring boot 2.0.2
spring.jpa.hibernate.use-new-id-generator-mappings=true
spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect