使用Spring Data JPA从数据库中仅选择两个字段

时间:2019-03-19 17:16:33

标签: hibernate jpa spring-data-jpa

我想知道使用Spring Data JPA从数据库中仅恢复实体的两个字段的最佳实践。

基本上,我想避免在调用中恢复整个实体对象。

我应该用这两个字段创建一个特定的类吗? 有没有办法动态地做到这一点?

1 个答案:

答案 0 :(得分:2)

我应该用这两个字段创建一个特定的类吗?

是的,这是达到相同目的的最干净的方法之一。

您可以使用Spring Data JPA (doc)中的投影。根据您的情况,创建界面:

interface ProjectIdAndName{
    String getId();
    String getName();
}

并将以下方法添加到您的存储库

List<ProjectIdAndName> findAll();

否则,如果要按查询进行查询,可以遵循以下本机查询方法。

您可以像这样从nativeQuery = true类的@Query注释中设置Repository

public static final String FIND_PROJECTS = "SELECT projectId, projectName FROM projects";

@Query(value = FIND_PROJECTS, nativeQuery = true)
public List<Object[]> findProjects();

请注意,您将不得不自己进行映射。除非您确实只需要这两个值,否则使用这样的常规映射查找可能会更容易:

public List<Project> findAll()

同样值得一看的是Spring数据docs