Scenario: 장유유서, 이름 오름차순 (단, 이름 없으면 마지막 출력)
@Test // Sorting
public void testSorting() {
em.persist(new Slave(null, 100)); // 쇼생크 탈출
em.persist(new Slave("nigger1", 100));
em.persist(new Slave("nigger2", 100)); // 이중 정렬을 하려면 첫번째 정렬 조건인 age가 같아야 한다.
List<Slave> slaves = queryFactory
.selectFrom(slave)
.where(slave.age.eq(100))
.**orderBy**(slave.age.desc(), slave.slaveName.asc().nullsLast())
.fetch();
Slave nigger1 = slaves.get(0);
Slave nigger2 = slaves.get(1);
Slave fugitiveNigger = slaves.get(2);
assertThat(slaves).hasSize(3);
assertThat(nigger1.getSlaveName()).isEqualTo("nigger1");
assertThat(nigger2.getSlaveName()).isEqualTo("nigger2");
assertThat(fugitiveNigger.getSlaveName()).isNull(); // nullsLast
}
↳ nullsLast(), nullsFirst() ⇒ null data sequence