弹簧 JPA 选择特定列
2022-08-31 05:58:14
我正在使用Spring JPA来执行所有数据库操作。但是,我不知道如何在Spring JPA的表中选择特定的列?
例如:SELECT projectId, projectName FROM projects
我正在使用Spring JPA来执行所有数据库操作。但是,我不知道如何在Spring JPA的表中选择特定的列?
例如:SELECT projectId, projectName FROM projects
您可以使用 Spring Data JPA (doc) 中的投影。在您的情况下,创建接口:
interface ProjectIdAndName{
String getId();
String getName();
}
并将以下方法添加到您的存储库
List<ProjectIdAndName> findAll();
我特别不喜欢语法(它看起来有点笨拙...),但这是我能找到的最优雅的解决方案(它在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的构造函数。Document
docId
filename