JPA部分字段查询

部分字段查询

实体类--------编写想要查询字段的构造方法

@Data
@Entity
@NoArgsConstructor
@Table(name = "user_info", schema = "practice01")
public class UserInfo {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private long customerId;
  private String name;
  private String company;
  private String address;
  private String city;
  private String state;
  private String country;
  private String phone;

  /**
   * jpa查询部分字段构造方法
   * @param name
   * @param city
   */
  public UserInfo(String name, String city){
    this.name = name;
    this.city = city;
  }
}

Repository--------通过select new 构造方法进行查询

public interface UserInfoRepository extends JpaRepository<UserInfo, Long> {
    /**
     * 测试部分字段查询样例
     * @param name name条件
     * @return
     */
    @Query(value = "select new UserInfo (name,city) from UserInfo where name = ?1")
    List<UserInfo> getPart(String name);
}

Service-----------调用repository对应方法

@Service
public class CustomerService {
    private final UserInfoRepository userInfoRepository;

    public CustomerService(UserInfoRepository userInfoRepository){
        this.userInfoRepository = userInfoRepository;
    }

    /**
     * 测试获取部分字段
     * @param name 用户名称参数
     * @return
     */
    public List<UserInfo> getPart(String name){
        return userInfoRepository.getPart(name);
    }
}

Resource--------调用service方法

@RestController
@RequestMapping("/api")
@Slf4j
public class UserInfoResource {
    private final CustomerService customerService;

    public UserInfoResource(CustomerService customerService) {
        this.customerService = customerService;
    }

    /**
     * jpa测试获取部分字段
     * @param name 名称参数
     * @return 
     */
    @GetMapping("/get/{name}")
    public List<UserInfo> getUserInfo(@PathVariable("name") String name){
        return customerService.getPart(name);
    }
}

访问接口-------测试结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uUK24UzU-1660457815526)(C:\Users\fanglijun\AppData\Roaming\Typora\typora-user-images\image-20220814141112624.png)]

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值