首页 > 解决方案 > 使用 JPA 规范接口实现查询

问题描述

我有这个 JPA 查询,用于选择具有规范接口的表。

    public List<PaymentTransactions> findAll(Specification<PaymentTransactions> spec) {
        String hql = "select e from " + PaymentTransactions.class.getName() + " e";
        TypedQuery<PaymentTransactions> query = entityManager.createQuery(hql, PaymentTransactions.class);
        List<PaymentTransactions> paymentTransactions = query.getResultList();
        return paymentTransactions;
    }

使用上述查询从接口规范中仅选择子宫托列的正确方法是什么?

org.springframework.data.jpa.domain interface public interface Specification<T> extends Serializable 

标签: javaspringspring-bootjpa

解决方案


我不确定我是否正确,但你可以试试这个方法

1) 使用所需参数创建额外的构造函数

package com.foo.bar;

public class PaymentTransactions {
    // column mapping and other properties are omitted
    private String requiredProp;
    private String optionalProp;

    public PaymentTransactions() {} // default no-arg constructor

    public PaymentTransactions(String required) {
       this.requiredProp = required;
    } 
}

2)并修改HQL查询

select new com.foo.bar.PaymentTransactions(e.requiredProp) from PaymentTransactions e

推荐阅读