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

第 35 章 Spring Data with MySQL

目录

35.1. 选择数据库表引擎
35.2. 声明实体
35.2.1. @Entity 声明实体
35.2.2. @Table 定义表名
35.2.3. @Id 定义主键
35.2.4. @Column 定义字段:
35.2.5. 非数据库字段
35.2.6. @Lob 注解属性将被持久化为 Blog 或 Clob 类型
35.2.7. @NotNull 不能为空声明
35.2.8. @Temporal 日期定义
35.2.9. 创建日期
35.2.10. @DateTimeFormat 处理日期时间格式
35.2.11. Enum 枚举数据类型
35.2.12. SET 数据结构
35.2.13. JSON 数据类型
35.2.14. 嵌入
35.2.15. @JsonIgnore
35.2.16. @EnableJpaAuditing 开启 JPA 审计功能
35.2.17. 注释 @Comment
35.2.18. @Pattern 数据匹配
35.2.19. 实体继承
35.2.20. 虚拟列
35.2.21. 语言区域
35.3. 映射集合属性
35.3.1. List 集合
35.3.2. 数组集合
35.3.3. Map 集合
35.3.4. Set 集合
35.3.5. 外键名称
35.3.6. 集合表子查询
35.4. 外键
35.4.1. @JoinColumn
35.4.2. @OneToOne
35.4.3. OneToMany 一对多
35.4.4. ManyToMany 多对多
35.4.5. 外键级联删除
35.4.6. 外键级联操作
35.4.7. @JoinTable
35.4.8. @OrderBy
35.4.9. @JsonIgnoreProperties
35.4.10. 允许外键为 NULL
35.4.11. 只要外键,不要数据结构
35.5. 索引
35.5.1. 普通索引
35.5.2. 组合索引
35.5.3. 唯一索引
35.6. Repository/CrudRepository/PagingAndSortingRepository/JpaRepository
35.6.1. JpaRepository
35.6.2. CrudRepository
35.6.3. PagingAndSortingRepository
35.6.4. findByXXX
35.6.5. count 操作
35.6.6. delete 删除操作
35.6.7. IsNull
35.6.8. In/NotIn
35.6.9. TRUE / FALSE
35.6.10. 比较数值大小
35.6.11. 判断日期和时间 Before / After
35.6.12. Between
35.6.13. Exists
35.6.14. OrderBy
35.6.15. GreaterThan
35.6.16. Sort 排序操作操作
35.6.17. Pageable 翻页操作
35.6.18. @DynamicInsert 与 @DynamicUpdate
35.6.19. 继承已存在的 Repository
35.6.20. Optional
35.6.21. stream 用法
35.7. TransactionTemplate
35.8. JPQL @Query
35.8.1. @Modifying 更新/删除
35.8.2. 参数传递
35.8.3. 原生 SQL 操作
35.8.4. @Query 与 Pageagble
35.8.5. 自定义返回字段
35.8.6. 返回指定字段
35.8.7. 返回指定的模型
35.8.8. 通过定义接口,返回指定字段
35.8.9. 修改返回数据
35.8.10. 事务 @Transactional
35.8.11. IN / NOT 子查询
35.9. FAQ 常见问题
35.9.1. Could not write JSON: failed to lazily initialize a collection of role
35.9.2. Query did not return a unique result: 2 results were returned
35.9.3. Executing an update/delete query
35.9.4. could not initialize proxy [cn.netkiller.domain.Device#16] - no Session
35.9.5. this is incompatible with sql_mode=only_full_group_by
35.9.6. A TupleBackedMap cannot be modified

35.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