【问题标题】:I need a help about java-spring我需要有关 java-spring 的帮助
【发布时间】:2022-11-28 11:25:59
【问题描述】:

我有两个名为“语言”和“技术”的表。语言由 c#、java 等编程语言组成,技术由 .net、spring 等子技术组成,所以当我想在 api(swagger-ui-get) 中列出语言时,语言会附带它们的子技术。在业务层中,我设置了条件,但语言仍然列出了所有子技术,而不仅仅是它们自己的。请你帮助我好吗 ?

{ “名称”:“C#”, “技术”:[ { “名称”:“.net” }, { “名称”:“反应” }, { “名称”:“视图” }, { “名称”:“春天” } ] } 我的代码:

    public List<GetAllLanguageResponse> getAll() {
    
    List<ProgrammingLanguage> languages = languageRepository.findAll();
    List<GetAllTechnologyResponse> technologyResponse = new ArrayList<GetAllTechnologyResponse>();
    List<GetAllLanguageResponse> languageResponse = new ArrayList<GetAllLanguageResponse>();
    List<Technology> technologies = techRepository.findAll();

    for(ProgrammingLanguage language : languages) {
        
        GetAllLanguageResponse languageResponse1 = new GetAllLanguageResponse();
        languageResponse1.setName(language.getName());
        
        for (Technology technology : technologies) {
            
            GetAllTechnologyResponse technologyResponse1 = new GetAllTechnologyResponse();
            
            if(technology.getLanguage() == language) {  
            technologyResponse1.setName(technology.getName());
            technologyResponse.add(technologyResponse1);
            languageResponse1.setTechnologies(technologyResponse);
            }
            
        }
        languageResponse.add(languageResponse1);
    }
    return languageResponse;
}

【问题讨论】:

    标签: java spring postgresql spring-boot swagger-ui


    【解决方案1】:

    通过 == 运算符比较对象可能会导致您的情况出现问题。

    1. 最好检查Technology 对象的模型及其与Language 的关系。有很多地方可能会产生不正确的行为。假设Technology 可能总是引用一个ProgrammingLanguage。看起来主要问题在Technology 类或数据库本身
    2. Language 是对象,technology.getLanguage() == language 不是 java 对象的正确方法。在ProgrammingLanguage 中覆盖equals(..)并使用.equals(..)而不是technology.getLanguage() == language
    3. 尝试调试techRepository.findAll();的结果,可能数据库中的数据不正确或与ProgrammingLanguage的连接操作不正确

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多