시나리오 : 다음 DTO가 포함 된 Arraylist입니다.Java의 다중 조건을 사용하여 ArrayList를 반복합니다.
MetadatRetrievalDTO[] dto = new MetadatRetrievalDTO[16];
dto[0] = new MetadatRetrievalDTO();
dto[0].setArticleId(11);
dto[0].setBaseId("SB11");
dto[0].setMetadataName("TYPE");
dto[0].setMetadataValue("RANCH");
dto[1] = new MetadatRetrievalDTO();
dto[1].setArticleId(11);
dto[1].setBaseId("SB11");
dto[1].setMetadataName("PRICE");
dto[1].setMetadataValue("1200000");
dto[2] = new MetadatRetrievalDTO();
dto[2].setArticleId(11);
dto[2].setBaseId("SB11");
dto[2].setMetadataName("STATE");
dto[2].setMetadataValue("NJ");
dto[3] = new MetadatRetrievalDTO();
dto[3].setArticleId(11);
dto[3].setBaseDocId("SB11");
dto[3].setMetadataName("REGION");
dto[3].setMetadataValue("NE");
//////////////////////////////////////////////////////
dto[4] = new MetadatRetrievalDTO();
dto[4].setArticleId(12);
dto[4].setBaseId("SB12");
dto[4].setMetadataName("TYPE");
dto[4].setMetadataValue("RANCH");
dto[5] = new MetadatRetrievalDTO();
dto[5].setArticleId(12);
dto[5].setBaseId("SB12");
dto[5].setMetadataName("PRICE");
dto[5].setMetadataValue("1200001");
dto[6] = new MetadatRetrievalDTO();
dto[6].setArticleId(12);
dto[6].setBaseId("SB12");
dto[6].setMetadataName("STATE");
dto[6].setMetadataValue("NJ");
dto[7] = new MetadatRetrievalDTO();
dto[7].setArticleId(12);
dto[7].setBaseId("SB12");
dto[7].setMetadataName("REGION");
dto[7].setMetadataValue("NE");
//////////////////////////////////////////////////////
dto[8] = new MetadatRetrievalDTO();
dto[8].setArticleId(13);
dto[8].setBaseId("SB13");
dto[8].setMetadataName("TYPE");
dto[8].setMetadataValue("RANCH");
dto[9] = new MetadatRetrievalDTO();
dto[9].setArticleId(13);
dto[9].setBaseId("SB13");
dto[9].setMetadataName("PRICE");
dto[9].setMetadataValue("1200002");
dto[10] = new MetadatRetrievalDTO();
dto[10].setArticleId(13);
dto[10].setBaseId("SB13");
dto[10].setMetadataName("STATE");
dto[10].setMetadataValue("NJ");
dto[11] = new MetadatRetrievalDTO();
dto[11].setArticleId(13);
dto[11].setBaseId("SB13");
dto[11].setMetadataName("REGION");
dto[11].setMetadataValue("NE");
//////////////////////////////////////////////////////
dto[12] = new MetadatRetrievalDTO();
dto[12].setArticleId(14);
dto[12].setBaseId("SB14");
dto[12].setMetadataName("TYPE");
dto[12].setMetadataValue("RANCH");
dto[13] = new MetadatRetrievalDTO();
dto[13].setArticleId(14);
dto[13].setBaseId("SB14");
dto[13].setMetadataName("PRICE");
dto[13].setMetadataValue("1200003");
dto[14] = new MetadatRetrievalDTO();
dto[14].setArticleId(14);
dto[14].setBaseId("SB14");
dto[14].setMetadataName("STATE");
dto[14].setMetadataValue("NH");
dto[15] = new MetadatRetrievalDTO();
dto[15].setArticleId(14);
dto[15].setBaseId("SB14");
dto[15].setMetadataName("REGION");
dto[15].setMetadataValue("NE");
여기서 BaseID는 기사마다 고유합니다. 검색 기준은 다음과 같습니다
HashMap<String,String> queryParams = new HashMap<String, String>();
queryParams.put("TYPE","RANCH");
queryParams.put("STATE","NJ");
queryParams.put("REGION","NE");
내가 queryParams
을 만족하는 모든 DTO들을 얻기 위해 지팡이. 그래서 원하는 ArrayList는 queryParams
과 일치하는 모든 레코드가 있어야합니다. 따라서이 기사에서는 State
이 NH
이기 때문에 제 경우에는 기본 ID가 SB14 인 마지막 기사를 제외해야합니다. 어떻게 이러한 결과를 반환하는 쿼리를 작성합니까? 이것은 당신이 무엇을 의미하는 경우 ...하지만 당신이 그와 같은 색인 또는 무언가를 고려해야합니다 ... 당신은 당신의 데이터 구조를 다시 생각해야 할 수도 있습니다
여기서 질문은 무엇입니까? –