Whiteship's Note


@CollectionOfElements 애노테이션

Hibernate/Annotation : 2008.09.19 11:31


참조
http://www.hibernate.org/hib_docs/annotations/api/org/hibernate/annotations/CollectionOfElements.html

Entity 타입 콜렉션 말고 Value 타입 콜렉션을 맵핑할 때 사용하는 애노테이션 입니다.

    @CollectionOfElements
    private List<Integer> hobbies;

간단하죠. JPA는 아니고 하이버네이트 애노테이션입니다. fetch와 targetClass 속성을 가지고 있는데, targetClass는 콜렉션 타입을 명시하지 않았을 때 사용하면 됩니다.

'Hibernate > Annotation' 카테고리의 다른 글

@CollectionOfElements 애노테이션  (0) 2008.09.19
Table 애노테이션  (0) 2008.06.19
JPA @Transient  (0) 2007.09.27
JPA @JoinColumn  (1) 2007.09.22
JPA @ManyToOne  (0) 2007.09.22
JPA @OneToMany  (0) 2007.09.22
top

Write a comment.


Sorted 콜렉션과 Ordered 콜렉션 맵핑하기

Hibernate/Chapter 6 : 2008.02.07 22:18


Sorted 타입 맵핑하기

  • @Sort 애노테이션을 사용해서, Sorter Set과 Sorted Map 타입으로 맵핑할 수 있다.
  • type 속성에서 Comparator를 사용할 수도 있다.
@CollectionOfElements
@JoinTable(name = "ITEM_IMAGE", joinColumns = @JoinColumn(name = "ITEM_ID"))
@Column(name = "FILENAME")
@Sort(type = SortType.NATURAL)
private SortedSet<String> images = new TreeSet<String>();

Ordered 타입 맵핑하기

  • Map, Set 그리고 Bag을 DB에서 읽어올 때 정렬해서 가져올 수 있다.
  • 하이버 @OrderBy 애노테이션의 clause 속성의 값은 DB에 직접 전달되는 SQL이다.
@CollectionOfElements
@JoinTable(name = "ITEM_IMAGE", joinColumns = @JoinColumn(name = "ITEM_ID"))
@Column(name = "FILENAME")
@OrderBy(clause = "FILENAME asc")
private Set<String> images2 = new HashSet<String>();
top

Write a comment.


Value Type의 Set, Bag, List, Map

Hibernate/Chapter 6 : 2008.02.07 22:14


  • Entity가 Value Type 객체 하나를 가지고 있을 때는 Entity를 저장한 테이블의 레코드에 같이 저장된다.
  • Value Type의 콜렉션과 연관을 맺고 있을 때는 별도의 테이블이 필요하다.
  • 콜렉션 인터페이스 선택하기
  • Sorted: 자바 메모리 상에서 정렬이 되는 것. Ordered: 데이터베이스 레벨에서 order by 절을 사용해서 정렬한다.
  • Bag, List는 Sorting을 설정할 수 없다. 인덱스가 있으니까... 대신 Order는 할 수 있다.
  • Set이나 Map을 Soring이 아닌 Order를 사용하고 싶을 때는 order-by 속성을 사용한다.(XML 설정)
top

Write a comment.