弹簧 JPA 选择特定列

2022-08-31 05:58:14

我正在使用Spring JPA来执行所有数据库操作。但是,我不知道如何在Spring JPA的表中选择特定的列?

例如:
SELECT projectId, projectName FROM projects


答案 1

您可以使用 Spring Data JPA (doc) 中的投影。在您的情况下,创建接口:

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

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

List<ProjectIdAndName> findAll();

答案 2

我特别不喜欢语法(它看起来有点笨拙...),但这是我能找到的最优雅的解决方案(它在JPA存储库类中使用自定义JPQL查询):

@Query("select new com.foo.bar.entity.Document(d.docId, d.filename) from Document d where d.filterCol = ?1")
List<Document> findDocumentsForListing(String filterValue);

然后,当然,你只需要提供一个接受&as构造函数args的构造函数。DocumentdocIdfilename


推荐