Spring JPA使用Tips
Posted 又是火星人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring JPA使用Tips相关的知识,希望对你有一定的参考价值。
命名查询的前缀定义可以在PartTree类找到,
package org.springframework.data.repository.query.parser; public class PartTree implements Streamable<OrPart> { // ... private static final String QUERY_PATTERN = "find|read|get|query|stream"; private static final String COUNT_PATTERN = "count"; private static final String EXISTS_PATTERN = "exists"; private static final String DELETE_PATTERN = "delete|remove"; // ... }
1、count和exists前缀让我们可以使用命名查询获取查询结果;
@Query(" select count(t) from FollowerInfo t where investUserId = :invUserId") Integer findFollowerNumberByInvUserId(@Param("invUserId") Long invUserId); // 效果等同于 Long countByInvestUserId(Long investUserId);
2、stream和Pageable可以优化程序的内存占用(类似Python的生成器)
public interface UserRepository extends JpaRepository<User, Integer> { // ... Page<User> findAll(Pageable pageable); // ... } public interface UserRepository extends JpaRepository<User, Integer> { // ... Stream<User> findAllByName(String name); // ... }
3、Optional可以有效解决Null值问题
public interface UserRepository extends JpaRepository<User, Integer> { Optional<User> findOneByName(String name); }
4、xxxxxxxxx
相关链接:
https://www.baeldung.com/spring-data-java-8
http://knes1.github.io/blog/2015/2015-10-19-streaming-mysql-results-using-java8-streams-and-spring-data.html
以上是关于Spring JPA使用Tips的主要内容,如果未能解决你的问题,请参考以下文章
带有分页和排序的 Spring Boot JPA 规范 API
试图在我的代码中找到数据库连接泄漏,使用 Spring / JPA / Hikari
使用 spring-data-jpa 和 MockMvc 进行 spring boot junit 测试