使用 Spring Data JPA 选择一列

2024-04-25

有谁知道如何使用 Spring Data JPA 获取单个列?我在 Spring Boot 项目中创建了一个如下所示的存储库,但总是得到{"cause":null,"message":"PersistentEntity must not be null!"}访问 Restful URL 时出错。

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UsersRepository extends CrudRepository<Users, Integer> {

    @Query("SELECT u.userName  FROM Users u")
    public List<String> getUserName();
}

然后如果我像这样访问 Restful URL../users/search/getUserName,我收到错误:{"cause":null,"message":"PersistentEntity must not be null!"}


创建投影界面

public interface UserNameOnly {
    String getUserName();
}

然后在您的存储库界面中返回该类型而不是用户类型

public interface UserRepository<User> extends JpaRepository<User,String> {
    List<UsernameOnly> findNamesByUserNameNotNull();
}

投影接口中的 get 方法必须与 JPA 存储库中定义类型的 get 方法匹配,在本例中为 User。 “findBySomePropertyOnTheObjectThatIsNotNull”允许您根据某些条件获取实体列表(而不是 Iterable),对于 findAll 来说,如果唯一标识符(或任何其他 NonNull 字段)不为空,则可以简单地获取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Spring Data JPA 选择一列 的相关文章

随机推荐