Java 解析findBy中的嵌套对象属性

Java 解析findBy中的嵌套对象属性,java,spring-boot,Java,Spring Boot,我有一个实体Items,它与另一个实体ExceptionType上的字段具有多通关系。我想根据银行编号从Items实体返回项目列表,并根据ExceptionType实体返回itemExceptionType。我用的是Gradle 我一直遇到这样的错误:找不到类型项的属性exceptionType!数据库是大型机上的DB2 我只能按银行号码搜索,这将返回项目列表。当我尝试将异常类型添加到查询时,返回一个空列表-即使所有项都有异常类型 问题似乎是项上ExceptionType对象的解析。我已将查询简

我有一个实体Items,它与另一个实体ExceptionType上的字段具有多通关系。我想根据银行编号从Items实体返回项目列表,并根据ExceptionType实体返回itemExceptionType。我用的是Gradle

我一直遇到这样的错误:找不到类型项的属性exceptionType!数据库是大型机上的DB2

我只能按银行号码搜索,这将返回项目列表。当我尝试将异常类型添加到查询时,返回一个空列表-即使所有项都有异常类型

问题似乎是项上ExceptionType对象的解析。我已将查询简化为仅通过异常号查找,但仍然会得到错误。我尝试过使用findBy中的u进行各种组合,但没有成功,例如findBy_ExceptionTypeExceptionNumber、findbyeExceptionType_ExceptionNumber等。。它们都返回相同的错误

当我使用类型项目的_ExceptionTypei acutally get:No property _ExceptionType时! 因此,无论是否使用u,它都无法解析嵌套对象/属性

@Entity
@Data
public class Items {

  @Id
  private String itemKey;

  private String bankNbr;

  private BigDecimal itemAmount;

  private String itemPosPayInd;

  @ManyToOne(cascade = CascadeType.ALL)
  @JoinColumn(name = "ITEM_EXCEPTION_TYPE", insertable = false, updatable = false)
  private ExceptionType itemExceptionType;


@Entity
@Data
public class ExceptionType {

private String exceptionTypeValue;

@Id
private String exceptionNumber;


public class AdHocController {
@Autowired
AdHocService adHocService;


@GetMapping(value = "/adhoc-bank-exception/")
@ResponseBody
public ResponseEntity<List<Items>> getAdHocItemsByBankException(@RequestParam String bankNbr, @RequestParam (required = false) ExceptionType itemExceptionType) {

    List<Items> itemsList = adHocService.getAdHocItemsByBankException(bankNbr, itemExceptionType);
    log.debug("Getting getAdHocItemsByBankException");
    return new ResponseEntity<>(itemsList, HttpStatus.OK);
}


@Service
public class AdHocService {

@Autowired
private AdHocRepository adHocRepository;


public List<Items> getAdHocItemsByBankException(String bankNbr, ExceptionType itemExceptionType) {
    return adHocRepository.findBy_ExceptionTypeExceptionNumber(itemExceptionType);

}

@Repository
public interface AdHocRepository extends CrudRepository<Items, Long> {


List<Items> findBy_ExceptionTypeExceptionNumber(ExceptionType exceptionNumber);

我需要它返回一个包含所提供的异常号的项目列表。但是,我得到了属性引用错误。

据我所知,您正在使用Spring数据。我建议如下:

让您的AdhorRepository接口从JpaRepository扩展,并将自定义回购方法的签名更改为以下内容

@Repository
public interface AdHocRepository extends JpaRepository<Items, Long> {

    List<Items> findByItemExceptionTypeExceptionNumber(String exceptionTypeNumber);
}
请注意自定义回购方法的命名:

找到了