엔티티에
@OneToMany
나 @ManyToMany
로 컬렉션(List
, Set
, Map
) 필드가 있을 때, 이 필드가 wrapper로 세팅되어있을 경우 (이클립스링크의 경우 IndirectList
, IndirectSet
, IndirectMap
) 일부 Java 8 기능이 먹지를 않는다.특히 가장 중요한 stream이 동작하지 않는다.
Aㅏ... 망했어요.
뭐 별 거 있나, wrap 된거를 꺼내오거나 그냥 새로운 컬렉션을 만들어서 값을 복사해서 쓰면 된다.
참 쉽죠?
뱀발:
엔티티 내부에 Java 8 기능을 우겨넣으면 씐나게 로딩하다가 에러가 날 것이다.
아쉽게도 JPA는 Java 8 기능이 들어간 엔티티는 엔티티로 취급하지 않는다 (...)
물론 그런건 별도의 클래스로 분리해 놓고 써먹으면 그만이다.
0 개의 댓글:
댓글 쓰기