💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
SpringDataJpa默认查询都是查询全部的字段,如果只想查询指定的几个字段可以采用如下方式查询。 <br/> **1. hsql + 指定构造器查询** ```java public class Student { //必须提供对应的构造器 public Student(String name, Integer age) { this.name = name; this.age = age; } } ``` ```java /** * hsql查询,实体类接收 */ @Query("select new com.learn.springdatajpa01.pojo.Student(student.name, student.age) from Student student") List<Student> findAll01(); ``` **2. hsql查询,Map接收** ```java //必须使用as重命名字段 @Query("select student.name as name, student.age as age from Student student") List<Map<String, Object>> findAll02(); ``` **3. 原生SQL查询,实体类接收** ```java /** * 1. 必须写全实体类Student的所有属性,不需要查询的字段给一个默认值,比如 ''。 * 2. 如果Student实体类中还存在其他的实体类,这个查询方式就不适用了。 */ @Query(value = "select '' as id, '' as sex, '' as total, name, age from student", nativeQuery = true) List<Student> findAll03(); ``` **4. 原生SQL查询,Map接收** ```java @Query(value = "select name, age from student", nativeQuery = true) List<Map<String, Object>> findAll04(); ```