我在JpaRepository
中有一个 HQL 查询 :
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
。
限制仅适用于 nativeQuery ,我想将其放入注释
答案 0 :(得分:1)
如果有很多具有相同LineCode的LineEntity,那么您需要一个额外的属性,该属性可以是id,例如:
Conv2D
答案 1 :(得分:0)
在休眠状态下的查询对象上,您具有setMaxResults(int maxResults)方法。
我没有使用如何将其放入批注中,而是采用了经典的方式:
Query q = session.createQuery("XXX").setMaxResults(1000);
q.list();
答案 2 :(得分:0)
如果您希望不进行查询就可以这样做,那么我们可以使用 Pageable 界面。 只需执行两个步骤即可。
1)在控制器中
@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);
}
答案 3 :(得分:-1)
可以通过使用first或top关键字来限制查询方法的结果,这些关键字可以互换使用。可以在顶部或顶部附加可选的数值,以指定要返回的最大结果大小。如果省略数字,则假定结果大小为1
因此要限制为10,您还可以使用:
List<LineEntity> findTop10ByLineCode(int lineCode);