JPA 부가 기능

@OrderBy @OrderColumn이 데이터베이스에 순서용 컬럼을 매핑해서 관리했다면 @OrderBy는 데이터베이스의 Order by절을 사용해서 컬렉션을 정렬한다. 따라서 순서용 컬럼을 매핑하지 않아도 된다. 그리고 @OrderBy는 모든 컬렉션에 사용할 수 있다. @OneToMany(mappedBy = “team”) @OrderBy(“username desc, id asc”) private Set<Member> members = new HashSet<Member>(); 위는 Team.members를 보면 @OrderBy를 적용했다. 그리고 값으로는 username desc, id asc를 사용해서 username필드로 내림차순 id로는 오름차순 정렬을 하였다. @OrderBy의 값은 JPQL의 order by절처럼 엔티티의 필드를 대상으로 한다. select m.* from.. Read More

JPA 컬렉션

JPA 와 컬렉션에 대해서 알아보자 JPA는 자바에서 기본으로 제공하는 Collection, List, Set, Map 컬렉션을 지원하고 다음 경우에 이 컬렉션을 사용할 수 있다. 1. @OneToMany, @ManyToMany 를 사용해서 일대다나 다대다 엔티티를 매핑할 때 2. @ElementCollection을 사용해서 값 타입을 하나 이상 보관할 때 자바의 컬렉션 인터페이스의 특징은 다음과 같다. – Collection : 자바가 제공하는 최상위 컬렉션이다. 하이버네이트는 중복을 허용하고 순서를 보장하지 않는다고 가정한다. – Set : 중복을 허용하지 않는 컬렉션이다. 순서를 보장하지.. Read More