Page History
...
No Format |
---|
@Query(value="SELECT address,age,name,phoneNbr,sex FROM address " + "UNION " + "SELECT address,age,name,phoneNbr,sex FROM address2 ", nativeQuery = true) List<?> makeUniOn(); |
SQL 윈도우함수를 대체하는 랭킹처리
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());
});
} |
QueryDSL 지원이되는 저장소
Code Block | ||||
---|---|---|---|---|
| ||||
//인터페이스 선언부 public interface AddressRepoDSL extends JpaRepository<Address, Long>, QueryDslPredicateExecutor<Address>{ } //사용부 @Autowired private AddressRepoDSL addressRepoDSL; public void jpa_queryDslTest() { QAddress userAddress = QAddress.address1; BooleanBuilder builder = new BooleanBuilder(); builder.and(userAddress.name.eq("민수1") ) .and(userAddress.address.like("%" + "서" +"%")); Iterable<Address> addressList = addressRepoDSL.findAll(builder); addressList.forEach( item -> { String itemString = String.format("%d%s %s %s %s %s",item.getId(),item.getName(), item.getPhoneNbr(), item.getSex(),item.getAddress(),item.getAge()); System.out.println(itemString); }); } |
...