Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将JPA标准生成器与联接表一起使用,可以';你得不到价值观?_Mysql_Spring Boot_Spring Data Jpa - Fatal编程技术网

Mysql 将JPA标准生成器与联接表一起使用,可以';你得不到价值观?

Mysql 将JPA标准生成器与联接表一起使用,可以';你得不到价值观?,mysql,spring-boot,spring-data-jpa,Mysql,Spring Boot,Spring Data Jpa,请帮助我,我正在使用JpaSpecificationExecutor,我需要在我的服务中添加一个关于getStatus()函数的条件,但是getStatus()是由中介计算的。。。 所以我的问题是如何通过getStatus()函数添加规范,或者如何在规范函数中获得中介体 public class Transaction extends AbstractEntity { //other code @OneToMany(mappedBy = "transaction&q

请帮助我,我正在使用JpaSpecificationExecutor,我需要在我的服务中添加一个关于getStatus()函数的条件,但是getStatus()是由中介计算的。。。 所以我的问题是如何通过getStatus()函数添加规范,或者如何在规范函数中获得中介体

public class Transaction extends AbstractEntity {
    //other code
 
    @OneToMany(mappedBy = "transaction")
    @JsonIgnore
    private List<Intermediary> intermediaries;

    public String getStatus() {
        if (id == null) return null;

        if (isEnabled.equals(0)) {
            return TransactionStatuses.CLOSED.toString();
        } else if (intermediaries != null && intermediaries.stream().anyMatch(intermediary -> intermediary.getArrangementID() != null)) {
            return TransactionStatuses.FILED.toString();
        } else if (intermediaries != null && intermediaries.stream().anyMatch(intermediary -> intermediary.getIsReportable() != null && intermediary.getIsReportable())) {
            return TransactionStatuses.TO_BE_FILED.toString();
        } else {
            return TransactionStatuses.OPEN.toString();
        }
    }
}
// Intermediary Entity
public class Intermediary extends AbstractEntity {

    // ...

    @ManyToOne(optional = false)
    private Transaction transaction;
}
// my service
@Override
    public Page<IntermediaryDtoV2> getMylogic Map<String, String> allRequestParams) {
      
Page<Intermediary> transactionPage = intermediaryRepository.findAll(Specification.where(
// here I need to check getStatus() logic
                    .and(TransactionListSpec.findBySearchValue(allRequestParams.get("searchOption"), allRequestParams.get("searchValue"))), pageRequest);
}

// My repository
public interface IntermediaryRepository extends JpaRepository<Intermediary, Long> , JpaSpecificationExecutor<Intermediary> {
   // my queries here
  }

公共类事务扩展了抽象实体{
//其他代码
@OneToMany(mappedBy=“交易”)
@杰索尼奥雷
私人名单中介人;
公共字符串getStatus(){
如果(id==null)返回null;
如果(isEnabled.equals(0)){
返回TransactionStatus.CLOSED.toString();
}else if(intermediates!=null&&intermediates.stream().anyMatch(intermediate->intermediate.getArrangementID()!=null)){
return transactionstatus.field.toString();
}else if(intermediates!=null&&intermediates.stream().anyMatch(intermediate->intermediate.getIsReportable()!=null&&intermediate.getIsReportable()){
return transactionstatus.TO_BE_FILED.toString();
}否则{
返回TransactionStatus.OPEN.toString();
}
}
}
//中介实体
公共类中介扩展了抽象实体{
// ...
@多通(可选=假)
私人交易;
}
//我的服务
@凌驾
公共页getMylogic映射(所有请求参数){
Page transactionPage=intermediaryRepository.findAll(Specification.where(
//这里我需要检查getStatus()逻辑
和(TransactionListSpec.findBySearchValue(allRequestParams.get(“searchOption”)、allRequestParams.get(“searchValue”))、pageRequest);
}
//我的存储库
公共接口中介存储库扩展了JpaRepository,JpaSpecificationExecutor{
//我的问题在这里
}
我做了类似的事情,但不起作用

// doesn't work
    public static Specification<Intermediary> _findByTransactionStatus(String status) {
        return (root, query, cb) -> {
            if (status == null) {
                return cb.conjunction();
            }
            Join<Intermediary, Transaction> transaction = root.join("transaction");

            return cb.equal(transaction.get("getStatus()"), "tr 111");
        };
}
// this work 
    public static Specification<Intermediary> findByIsEnabled(Integer isEnabled){
        return (root, query, cb) -> {
            if (isEnabled == null) {
                return cb.conjunction();
            }
            return cb.equal(root.<Integer>get("isEnabled"), isEnabled);
        };
    }


    ```
//不起作用
公共静态规范_findByTransactionStatus(字符串状态){
返回(根、查询、cb)->{
如果(状态==null){
返回cb.conjunction();
}
Join transaction=root.Join(“事务”);
返回cb.equal(transaction.get(“getStatus()”),“tr 111”);
};
}
//这项工作
公共静态规范findByIsEnabled(整数isEnabled){
返回(根、查询、cb)->{
如果(isEnabled==null){
返回cb.conjunction();
}
返回cb.equal(root.get(“isEnabled”),isEnabled);
};
}
```