当前位置: 首页 > 知识库问答 >
问题:

我想使用jpa从db中获取一个完全匹配的记录,但它给出了多个记录

管梓
2023-03-14

//jpa存储库代码到crud操作

@query(value=“select*from flatdetails fd inner join vehicledetailsid=veh.FlatDetailsid where veh.registrationNumber like%?1%and fd.tenantid=?2”,nativeQuery=true)列出findByRegistrationNumberAndTenantTenantid(字符串registrationNumber,长tenantid);

//服务实现层代码flatDetilsList=FlatDetailsRepository.FindByRegistrationNumberandTenantTenantid(VehicleParkingDetailSdTo.GetVehicleNumber(),VehicleParkingDetailSdTo.GetTenantid());
}

        flatDetilsList.stream().forEach(fd -> {
            List<VehicleDto> vehicleDtoList = new ArrayList();
            VehicleParkingResponseDto dto = new VehicleParkingResponseDto();
            List<VehicleDetail> list = fd.getVehicleDetails();
            list.stream().forEach(ve -> {
                VehicleDto vecDto = new VehicleDto();
                vecDto.setVehicleDetailId(ve.getVehicleDetailId());
                vecDto.setRegistrationNumber(ve.getRegistrationNumber());
                vecDto.setVehicleOwnerName(ve.getVehicleOwnerName());
                vecDto.setVehicleTypeValue(ve.getVehicleType().getValue());
                vecDto.setParkingTypeValue(ve.getParkingType().getValue());
                vecDto.setParkingSlotValue(ve.getParkingSlot().getValue());

                vehicleDtoList.add(vecDto);
            });
            dto.setFlatDetailsId(fd.getFlatdetailsid());
            dto.setFlatNo(fd.getFlatno());
            dto.setVehiclList(vehicleDtoList);
            vehicleParkingTempList.add(dto);
        });


    } catch (Exception e) 
    {

    }
    return vehicleParkingTempList;

共有1个答案

严斌
2023-03-14

查询端可能犯了一个错误,因为您已经使用vehiclereg_no类似于->这会生成与您将要提供的匹配器值匹配的所有reg no,如果您只想返回一个记录,那么您可以尝试使用limit。

如下所示,以这种方式使用查询

@Query(value = "select * from flatdetails fd inner join vehicledetail veh on fd.flatdetailsid = veh.flatDetailsId where veh.registrationNumber = ?1 and fd.tenantId =?2", nativeQuery = true) List findByRegistrationNumberAndTenantTenantid(String registrationNumber,long tenantid) limit 1;
 类似资料:
  • 在这里,我使用了一个点切割注释,如下所示: 它给了我一个例外,那就是: 我刚刚开始学习AOP。任何建议或帮助都会有很大帮助。谢谢。

  • 问题内容: 我想获得表中每个记录的最小日期,该记录具有一个主键的多个日期条目。看看我的桌子: 我想要这样的结果: 我想获取每个CaseNo的最短日期记录在我的桌子上。 我尝试了这段代码: 结果是这样的: 该代码删除没有最小日期的行。我想显示所有记录的最小日期为Min_date。 问题答案: 试试这个

  • 问题内容: 有人已经帮助我进行了此查询,但我进行了修改,但遇到了一个问题: 并且仅在较低的ID时有效。不适用于user1或user2 …我只是想不通为什么…!如果我按tyd.login分组,它也可以工作,但在这种情况下,AVG和COUNT函数只能在一行上工作… 这是表格: 当它完美地工作时。当user1或user2我有0行。 感谢您的帮助 第一个主题:Sql,在转义where条件的同时获取组的平均

  • 问题内容: 假设有两个表: 表A 表B 表之间的联系是 messageID 字段。 我想要一个查询来生成这样的结果,在该查询中,我将所有字段从表A中拉出,并对表B中每条消息的注释数进行计数,如下所示: 我已经尝试过这样的事情: 但这是行不通的。有任何想法吗?似乎应该可以在一个查询中执行此操作。我正在使用MSSQL。谢谢你的帮助。 问题答案: 标量子查询将起作用: 与往常一样,有很多方法可以改变这只

  • 我在Aerospike数据库中有一个名称空间:test and set:user。我通过控制台上的以下命令在users中添加了四条记录: 通过aql命令,我可以查看这四条记录。aql 我知道一个接一个地获取记录的方法,它在我这边运行得很好,但这对于我的任务来说是非常昂贵的操作。我想读取多个记录(批读取)并对其执行多个算法。我从https://www.aerospike.com/docs/clien

  • 给定:我在Kafka中有两个主题,假设主题A和主题B。Kafka流从主题A中读取一条记录,对其进行处理,并产生与所消耗记录相对应的多条记录(假设recordA和recordB)。现在的问题是我如何使用Kafka流来实现这一点。 在这里,读取的记录是消息;处理之后,它返回一个消息列表。如何将此列表划分为两个生产者流?任何帮助都将不胜感激。