영한님이 실무에서 좋아하는 방법

@Test
public void dynamicQuery_WhereParam() {
	String usernameParam = "member1";
	Integer ageParam = null;

	List<Member> result = searchMember2(usernameParam, ageParam);
	assertThat(result.size()).isEqualTo(1);
}

private List<Member> searchMember2(String usernameCond, Integer ageCond) {
	return queryFactory
			.selectFrom(member)
			.where(usernameEq(usernameCond), ageEq(ageCond))
			.fetch();
}

private BooleanExpression usernameEq(String usernameCond) {
	return usernameCond != null ? member.username.eq(usernameCond) : null;
}

private BooleanExpression ageEq(Integer ageCond) {
	return ageCond != null ? member.age.eq(ageCond) : null;
}

정리