代码之家  ›  专栏  ›  技术社区  ›  Morteza Jalambadani Robert Beltran

HQL查询使用限制

  •  0
  • Morteza Jalambadani Robert Beltran  · 技术社区  · 7 年前

    我有一个 HQL公司 查询 在里面 JpaRepository :

    public interface LineRepository extends JpaRepository<LineEntity , Integer>{
        @Query(
                value = "SELECT l from LineEntity l" +
                        "WHERE l.lineCode = :lineCode "
        )
        List<LineEntity> findAllByLineCode(
                @Param("lineCode")int lineCode
        );
    
    }
    

    LineEntity . 限制 继续努力 我想把这个放到注释里

    3 回复  |  直到 7 年前
        1
  •  1
  •   David Jesus    5 年前

    public interface LineRepository extends JpaRepository<LineEntity , Integer>{
        @Query(
                value = "FROM LineEntity li WHERE li.id = " +
                        "(SELECT max(l.id) FROM LineEntity l " +
                        "WHERE l.lineCode = :lineCode)"
        )
        LineEntity findFirstByLineCode(
                @Param("lineCode") int lineCode
        );
    }
    
        2
  •  0
  •   Orden    7 年前

    在hibernate的query对象上有一个setMaxResults(intmaxresults)方法。

    我不知道如何将其放入注释中,但它的工作方式是这样的:

    Query q = session.createQuery("XXX").setMaxResults(1000);
    q.list();
    
        3
  •  0
  •   Angad Bansode    7 年前

    如果您不想进行查询,那么我们可以使用 可寻呼 接口。 只需做两步。

    @RequestMapping("/getLineByLineCode/{code}")    
    public @ResponseBody Page<LineEntity> getFirstUserByName(@PathVariable String code,Pageable pageable)
    {
      // this pageable for single result.(first result will return)
        Page<LineCode> line = repository.findByCode(code,new PageRequest(0,1));
                                                            //(start index,upto index)
       return line;
    } 
    

    2) 在存储库中

    public interface LineRepository extends JpaRepository<LineEntity , Integer>{
           Page<LineCode> findByCode(String code,Pageable pageable);
    }
    
        4
  •  0
  •   mtshaikh    7 年前

    documentation

    查询方法的结果可以通过使用第一个关键字或顶部关键字来限制,这些关键字可以互换使用。可选的数值可以附加到top或first,以指定要返回的最大结果大小。如果省略了数字,则假定结果大小为1

    因此,要限制为10,您还可以使用:

    List<LineEntity> findTop10ByLineCode(int lineCode);
    
    推荐文章