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

部分 V. Spring Data

目录

33. EntityManager
34. Spring Data with JdbcTemplate
34.1. execute
34.2. queryForInt
34.3. queryForLong
34.4. queryForObject
34.4.1. 返回整形与字符型
34.4.2. 查询 Double 类型数据库
34.4.3. 返回日期
34.4.4. 返回结果集
34.4.5. 通过 "?" 向SQL传递参数
34.4.6. RowMapper 记录映射
34.5. queryForList
34.5.1. Iterator 用法
34.5.2. for 循环
34.5.3. forEach 用法
34.6. queryForMap
34.7. query
34.7.1. ResultSet
34.7.2. ResultSetExtractor
34.7.3. RowMapper
34.8. queryForRowSet
34.9. update
34.10. MapSqlParameterSource
34.11. 实例参考
34.11.1. 参数传递技巧
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
36. Spring Data with Redis
36.1. 集成 Redis XML 方式
36.1.1. pom.xml
36.1.2. springframework-servlet.xml
36.1.3. Controller
36.1.4. index.jsp
36.1.5. 测试
36.2. 通过构造方法实例化 Redis
36.3. StringRedisTemplate 基本用法
36.3.1. 存储数据
36.3.2. 获取值并删除
36.3.3. 取出数据
36.4. RedisTemplate
36.4.1. 设置缓存时间
36.4.2. increment
36.4.3. 删除 key
36.4.4. 对象存储
36.4.5. 获取过期时间
36.4.6. 过期时间未执行
36.4.7. 判断 key 是否存在
36.5. ValueOperations
36.5.1. 字符串截取
36.5.2. 追加字符串
36.5.3. 设置键的字符串值并返回其旧值
36.5.4. 返回字符串长度
36.5.5. 如果key不存便缓存。
36.5.6. 缓存多个值 /获取多个值 multiSet / multiGet
36.5.7. setBit / getBit 二进制位操作
36.6. 列表操作
36.6.1. rightPush
36.6.2. rightPushAll
36.6.3. rightPushIfPresent
36.6.4. leftPush
36.6.5. leftPushAll
36.6.6. range
36.7. SetOperations 数据类型
36.7.1. 返回集合中的所有成员
36.7.2. 取出一个成员
36.7.3. 随机获取无序集合中的一个元素
36.7.4. 随机获取 n 个成员(存在重复数据)
36.7.5. 随机获取 n 个不重复成员
36.7.6. 在两个 SET 间移动数据
36.7.7. 成员删除
36.7.8. 返回集合数量
36.7.9. 判断元素是否在集合成员中
36.7.10. 对比两个集合求交集
36.7.11. 对比两个集合求交集,然后存储到新的 key 中
36.7.12. 合并两个集合,并去处重复数据
36.7.13. 合并两个集合去重复后保存到新的 key 中
36.7.14. 计算两个合集的差集
36.7.15. 计算两个合集的差集,然后保存到新的 key 中
36.7.16. 遍历 SET 集合
36.8. ZSetOperations 有序的 set 集合
36.9. HashOperations
36.9.1. put
36.9.2. putAll
36.9.3. 从键中的哈希获取给定hashKey的值
36.9.4. delete
36.9.5. 确定哈希hashKey是否存在
36.9.6. 从哈希中获取指定的多个 hashKey 的值
36.9.7. 只有hashKey不存在时才能添加值
36.9.8. 获取整个Hash
36.9.9. 获取所有key
36.9.10. 通过 hashKey 获取所有值
36.9.11. 值加法操作
36.9.12. 遍历 Hash 表
36.10. 存储 Json 对象
36.10.1. 集成 RedisTemplate 定义新类 JsonRedisTemplate
36.10.2. 配置 Redis
36.10.3. 测试
36.11. Spring Data Redis - Repository Examples
36.11.1. @EnableRedisRepositories 启动 Redis 仓库
36.11.2. 定义 Domain 类
36.11.3. Repository 接口
36.11.4. 测试代码
36.12. Redis Pub/Sub
36.12.1. MessageListener 方案
36.12.2. @RedisListener 注解方案
36.12.3. 线程池
36.13. CacheService
36.14. FAQ
36.14.1. Spring Data Redis
37. Spring Data with MongoDB
37.1. Example Spring Data MongoDB
37.1.1. pom.xml
37.1.2. springframework-servlet.xml
37.1.3. POJO
37.1.4. Controller
37.1.5. 查看测试结果
37.1.6. 条件查询
37.2. MongoDB 多数据源
37.2.1. Maven
37.2.2. Application 禁止自动配置 MongoDB
37.2.3. application.properties 新增配置项
37.2.4. MongoDB 配置类
37.2.5. 创建 Document 关系映射类
37.2.6. 测试控制器
37.2.7. 测试
37.3. @Document
37.3.1. 指定表名
37.3.2. @Id
37.3.3. @Version
37.3.4. @Field 定义字段名
37.3.5. @Indexed
37.3.6. @CompoundIndex 复合索引
37.3.7. @TextIndexed
37.3.8. @GeoSpatialIndex 地理位置索引
37.3.9. @Transient 丢弃数据,不存到 mongodb
37.3.10. @DBRef 做外外键引用
37.3.11. @DateTimeFormat
37.3.12. @NumberFormat
37.3.13. 在 @Document 中使用 Enum 类型
37.3.14. 在 @Document 中定义数据结构 List/Map
37.3.15. GeoJson 数据类型
37.4. MongoRepository
37.4.1. 扫描仓库接口
37.4.2. findAll()
37.4.3. deleteAll()
37.4.4. save()
37.4.5. count()
37.4.6. exists() 判断是否存在
37.4.7. existsById()
37.4.8. findByXXXX
37.4.9. findAll with OrderBy
37.4.10. findAll with Sort
37.4.11. FindAll with Pageable
37.4.12. StartingWith 和 EndingWith
37.4.13. Between
37.4.14. Before / After
37.4.15. @Query
37.5. mongoTemplate
37.5.1. Save 保存
37.5.2. Insert
37.5.3. updateFirst 修改符合条件第一条记录
37.5.4. updateMulti 修改符合条件的所有
37.5.5. 查找并保存
37.5.6. upsert - 修改符合条件时如果不存在则添加
37.5.7. 删除
37.5.8. 查找一条数据
37.5.9. 查找所有数据
37.5.10. Query
37.5.11. Criteria
37.5.12. Update
37.5.13. BasicUpdate
37.5.14. Sort
37.5.15. Query + PageRequest
37.5.16. newAggregation
37.5.17. 创建索引
37.5.18. 子对象操作
37.6. GeoJson 反序列化
37.7. FAQ
37.7.1. location object expected, location array not in correct format; nested exception is com.mongodb.MongoWriteException: location object expected, location array not in correct format
38. Spring Data with Elasticsearch
38.1. 内嵌 Elasticsearch
38.1.1. Maven
38.1.2. src/main/resources/application.properties
38.1.3. Domain Class
38.1.4. ElasticsearchRepository
38.1.5. SearchRestController
38.1.6. 测试
38.2. 集群模式
38.3. Document
38.4. Elasticsearch 删除操作
38.5. FAQ
38.5.1. java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.0.0]
39. Spring boot with Data restful
39.1. Maven
40. Apache ShardingSphere
40.1. 微服务集群环境,雪花算法出现重复ID
40.1.1. 方案一、配置实现
40.1.2. 方案二、代码实现