java – 用于在SQL中请求随机行的相应Spring JPA方法名称

为了在带有名称的SQL表中获取记录,我使用以下查询:SELECT * FROM User WHERE User.name = name;相应的Spring JPA方法名称如下:UserEntity findUserByName(@Param(name) String name);我的问题如下:如何从SQL表...

为了在带有名称的SQL表中获取记录,我使用以下查询:

SELECT * FROM User WHERE User.name = name;

相应的Spring JPA方法名称如下:

UserEntity findUserByName(@Param("name") String name);

我的问题如下:

如何从SQL表中请求随机记录?
我知道我的SQL查询应该如下:

SELECT * FROM User
ORDER BY RAND()
LIMIT 1;

但是,相应的Spring JPA方法名称应该是什么呢?

UserEntity findUserXXXXXXX (XXXXXXX);

解决方法:

JPA支持规范中定义的函数.您可以使用本机查询选项或JPA 2.1函数来调用JPA规范不直接支持的数据库函数.您可以在spring数据jpa存储库中使用@Query注释.

原生查询

@Query(value="SELECT * FROM User ORDER BY RAND() LIMIT 1", nativeQuery = true)
UserEntity findUser();

功能

@Query("SELECT u FROM UserEntity u order by function('RAND')")
List<UserEntity> findUser();

您可以使用list.get(0)来获取单个用户.

本文标题为:java – 用于在SQL中请求随机行的相应Spring JPA方法名称

基础教程推荐