首页 > 解决方案 > 如何遍历findby休眠两列中的数据并打印出所有值

问题描述

我有一个场景,我有一个查询,它通过拆分传递给案例的值来搜索数据,例如01840005,它将它拆分为0184and 0005。然后我用它在数据库上搜索匹配两列结果的结果。

这就是我在存储库中的方式

public interface HSEC01X_Repository extends JpaRepository<HSEC01X, String> {

    List<HSEC01X> findHSEC01XByHAAndHNUM(String hA, String hNUM);
}

这就是拆分后将其发送到存储库的方式。

 public List<HSEC01X> getHouseHoldMembersByCase(String country, String id, String case) {
        String ha = (case.substring(0, 4));
        String hnum = (case.substring(4, 8));

        List<HSEC01X> champs = hsec01X_repository.findHSEC01XByHAAndHNUM(ha, hnum);
        return champs;

    }

它正确获取数据并返回 9 个值。这就是我循环数据的方式。但由于某些奇怪的原因,它只打印第一个值 9 次,而不是打印所有不同的 9 个值。我究竟做错了什么?

public ArrayList<Summary> getHouseHoldRecordsByCase(String country, String id, String case) {
        ArrayList<Summary> documents = new ArrayList<>();
        Summary summary = new Summary();
        ArrayList<ItemDetails> details;
        summary = new Summary();
        List<HSEC01X> members = reportService.getHouseHoldMembersByCase(country, id, case);

        for (HSEC01X member : members) {
            summary.recordType = "Member List";
            summary.case = case;
            summary.country = country;
            summary.id = id;
            details = new ArrayList<>();
            Field[] fields = member.getClass().getDeclaredFields();
            for (Field _f : fields) {
                try {
                    String val = PropertyUtils.getProperty(member, _f.getName()).toString();
                    details.add(new ItemDetails(val, _f.getName(), val, _f.getName()));
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
            summary.itemDetails = details;
            documents.add(summary);
        }
        return documents;
    }

如何设置我的函数以打印出所有不同的值,而不是打印第一个值 x 次?

标签: javaspring-boothibernate

解决方案


推荐阅读