Page History
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
public void RankTest() { int[] score = {Integer.MIN_VALUE}; int[] no = {0}; int[] rank = {0}; List<AddressAgeRank> ageRankList = addressRepo.findByAgeBetween(10, 90).stream() .sorted((a,b) -> b.getAge() - a.getAge() ) .map(p -> { ++no[0]; if (score[0] != p.getAge()) rank[0] = no[0]; return new AddressAgeRank(p.getName(),score[0] = p.getAge(), rank[0] ); }) .collect(Collectors.toList()); ageRankList.forEach(item ->{ System.out.println(item.toString()); }); } |
Expand | ||
---|---|---|
| ||
Note | ||
---|---|---|
| ||
ORM은 쿼리를 모르는 사람이 편리하게 사용할수 있는 툴일까? 로 시작하였지만시작하여 비교적 쉬운 데이터 모델은 ORM을(SQL PART-A) 통해 무난하게 학습진행되었지만 제가 원하는 진정한 변환은 SQL-PART2였으며 여기서 SQL-PART2 를 변환하면서 문제가 발생하였습니다. 이것의 변환을 위해 DB학습을 더해야했으며 표준적이지 않지만 해결방법을찾아야했습니다. ORM은 DB를 이해하고 OOP로 변환하고 일치시키려는 컨셉을 가지고 있기때문에 DB와 OOP 연마를 함께해야하며 평균이상 더 해야합니다해야한다란 결론에 도달하였습니다. 그러고도 복잡한 쿼리에대한 성능문제 예를 들면 N+1의 문제를 해결해야합니다. ORM N+1 문제를 검색하면, 엄청난 량의 각기 다른문제를 검색할수 있으며 이것을 해결하는 표준적인 방법이 없으며 ORM을 사용하는 각각의 프레임워크마다 해결방식이 다릅니다. ORM을 사용하기위해서는 개발 ORM에 도전하기위해서는 기존개발 패러다임이 바뀌어야하고 다음과같이 다음과같은 더 고난이도의 해결해야할 과제가 있습니다있음을 알게되었습니다.
|