为了在带有名称的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)来获取单个用户.