Set the fetch size with Spring Data

后端 未结 1 631
小鲜肉
小鲜肉 2021-02-06 07:00

For large result sets, it’s important to increase the fetch size. There have been numerous discussions on how to set the fetch size for Spring’s JdbcTemplate. Howev

1条回答
  •  挽巷
    挽巷 (楼主)
    2021-02-06 07:31

    It depends on what you want to set. If you want it globally simply add it as a property to your persistence.xml (or what your way of configuration the EntityManagerFactory is). For hibernate that means adding the hibernate.jdbc.fetch_size property.

    
    

    If you want to specify it for certain queries use query hints from JPA on the Query object.

    TypedQuery q = em.createTypedQuery("some hql here", Foo.class);
    q.setHint("org.hibernate.fetchSize", "100");
    

    Or when using Spring Data JPA use a @QueryHints annotation on the interface method. Can be applied to both methods with and without @Query.

    @QueryHints(@javax.persistence.QueryHint(name="org.hibernate.fetchSize", value="50"))
    List findAll();
    

    Links

    1. Hibernate documentation
    2. Spring Data JPA reference | javadoc
    3. JPA 2 Query Hints javadoc
    4. List of query hints for Hibernate

    0 讨论(0)
提交回复
热议问题