Java 试图使用;或;及;及;在相同的JPA方法签名中
我需要从同一个表中查询Java 试图使用;或;及;及;在相同的JPA方法签名中,java,jpa,spring-data-jpa,Java,Jpa,Spring Data Jpa,我需要从同一个表中查询((flooId和类别)或(areaId和类别))。 上述给定名称不起作用。它抛出以下错误 findByFloorIdAndCategoryOrAreaIdAndCategory 虽然可能隐藏着一个bug,但你真的不应该这样做 查询派生故意不提供任何方法来控制和与或操作之间的优先级。查询派生背后的思想是为简单方法名创建查询,其中SQL/JPQL仅从方法名就可以看出。但是像findbyFlooridandCategoryorAreaId和Category这样的名称不是您通常
((flooId和类别)或(areaId和类别))
。
上述给定名称不起作用。它抛出以下错误
findByFloorIdAndCategoryOrAreaIdAndCategory
虽然可能隐藏着一个bug,但你真的不应该这样做 查询派生故意不提供任何方法来控制
和与或操作之间的优先级。查询派生背后的思想是为简单方法名创建查询,其中SQL/JPQL仅从方法名就可以看出。但是像findbyFlooridandCategoryorAreaId和Category这样的名称不是您通常会使用的名称(我希望如此),因此您不应该使用
而是选择一个更短、更好的名称并添加一个@Query
注释或一个命名查询
至于潜在的错误:如果你能提供一台复制机,请在报告,虽然可能隐藏了一个错误,但你真的不应该这样做
查询派生故意不提供任何方法来控制和与或操作之间的优先级。查询派生背后的思想是为简单方法名创建查询,其中SQL/JPQL仅从方法名就可以看出。但是像findbyFlooridandCategoryorAreaId和Category这样的名称不是您通常会使用的名称(我希望如此),因此您不应该使用
而是选择一个更短、更好的名称并添加一个@Query
注释或一个命名查询
至于潜在的错误:如果你能提供一台复制机,请在上报告。请添加你得到的错误。代码:List spaceToDevices=spaceToDevicePository.FindByFlooridandCategoryAreaId和category(id,category,id,category); 错误:具有根causecom.azure.data.cosmos.CosmosClientException:网关检索查询计划失败:消息:{“Errors”:[“无效查询。指定了重复的参数名'@category'。”]}请添加您得到的错误。代码:List spaceToDevices=SpaceToDevicePository.FindByFlooridandCategorYorAreaId和category(id,category,id,category); 错误:具有根causecom.azure.data.cosmos.CosmosClientException:网关检索查询计划失败:消息:{“Errors”:[“无效查询。指定了重复的参数名'@category'。”]}
List<SpaceToDevice> spaceToDevices = spaceToDeviceRepository.findByFloorIdAndCategoryOrAreaIdAndCategory(id, category, id, category);
Error: with root causecom.azure.data.cosmos.CosmosClientException:
Gateway Failed to Retrieve Query Plan:
Message: {"Errors":["Invalid query. Specified duplicate parameter name '@category'."]}