gpt4 book ai didi

java - 解析 findBy 中的嵌套对象属性

转载 作者:行者123 更新时间:2023-12-02 09:22:28 24 4
gpt4 key购买 nike

我有一个实体 Items,它与另一个实体 ExceptionType 上的字段具有 ManyToOne 关系。我想返回基于银行号码(来自 Items 实体)和 itemExceptionType(来自 ExceptionType 实体)的 Item 列表。我正在使用 Gradle。

我不断收到此错误:未找到类型 Items 的属性 exceptionType!数据库为主机上的DB2。

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

问题似乎出在 Items 上 ExceptionType 对象的解析上。我已将查询简化为仅 findBy 异常编号,但仍然收到错误。我尝试了在 findBy 中使用 _ 的各种组合,但没有成功(例如 findBy_ExceptionTypeExceptionNumber、findByExceptionType_ExceptionNumber 等)。它们都返回相同的错误。

当我使用 _ExceptionType 时,我实际上得到:没有为 Items 类型找到属性 _ExceptionType!
因此,无论有没有 _,它都无法解析嵌套对象/属性

@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 Data。我建议如下:

让你的AdHocRepository接口(interface)扩展自JpaRepository并将您的自定义存储库方法的签名更改为以下内容。

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

List<Items> findByItemExceptionTypeExceptionNumber(String exceptionTypeNumber);
}

注意自定义存储库方法的命名:

findBy<NameOfEntityProperty><NameOfNestedEntityProperty>(...)

关于java - 解析 findBy 中的嵌套对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58593755/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com