ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
Spring Data JPA 默认查询都是查询全部的字段,如果只想查询指定的几个字段可以采用如下方式查询。 <br/> **1. hsql查询,Map接收** ```java /** * 必须用 as 起别名,否则 Map 的键为 null * 返回的 Map 类型的键不区分大小写 */ @Query("select p.id as id, p.username as username from Person p") List<Map<String, Object>> findList1(); ``` <br/> **2. 原生SQL查询,Map接收** ```java /** * 返回的 Map 类型的键不区分大小写 */ @Query(value = "select id, username from tb_person", nativeQuery = true) List<Map<String, Object>> findList2(); ``` <br/> **3. hsql + 指定构造器查询** ```java public class Person implements Serializable { //必须提供对应的构造器 public Person(Integer id, String username) { this.id = id; this.username = username; } } ``` ```java @Query(value = "select new Person (p.id, p.username) from Person p") List<Person> findList3(); ``` <br/> **4. 原生SQL查询,实体类接收** ```java /** * 必须写全实体类的所有属性,不需要查询的字段给一个默认值,比如 '' */ @Query(value = "select id, username, '' age, '' gender from tb_person", nativeQuery = true) List<Person> findList4(); ```