我使用Spring JPA来执行所有的数据库操作。但是,我不知道如何在Spring JPA中从表中选择特定的列?
例如:
SELECT projectId, projectName FROM projects
发布于 2014-02-25 15:43:34
您可以在Repository
类的@Query
注释中设置nativeQuery = true
,如下所示:
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 data docs。
发布于 2016-12-02 22:07:57
您可以使用来自Spring Data JPA (doc)的投影。在您的示例中,创建接口:
interface ProjectIdAndName{
String getId();
String getName();
}
并将以下方法添加到您的存储库
List<ProjectIdAndName> findAll();
发布于 2015-03-13 05:34:24
我不太喜欢它的语法(它看起来有点老套……)但这是我所能找到的最优雅的解决方案(它在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);
当然,您只需为Document
提供一个构造函数,该构造函数接受docId
& filename
作为构造函数参数。
https://stackoverflow.com/questions/22007341
复制相似问题