2016-07-07 1 views
2

콜렉션 내에 콜렉션이있는 필드에 ElementCollection 주석을 가질 수 있을까? 관련 주석을 추가하거나 코드가있는 경우JPA Hibernate와 Map을위한 ElementCollection을 가지고있다.

@ElementCollection 
private Map<String, List<String>> mappedData = new HashMap<String, List<String>>(); 

나는이 그렇게 확신하지와 함께 순간에 MappingException 무엇입니까 아니면 새로운 클래스를 만들 아마도 포함 가능한을 사용하고 내장해야하는 경우

+0

이 중첩 된 컬렉션에주의하십시오. 나중에'List'를'Set'으로 변경해야한다면 어떻게됩니까? @AlexR에서 빈을 대신 사용하는 유용한 조언을 참조하십시오. http://stackoverflow.com/questions/16516107/how-can-i-store-hashmapstring-arrayliststring-inside-a-list – bphilipnyc

답변

1
당신은 UserType을 사용할 수 있습니다

JPA를 첨부 한 Atribute Converter를 사용하면 믿을만한 컬렉션에 첨부 할 수 있습니다. 내가 컬렉션을 테스트 한 적이 있지만, 나는 그것이해볼 가치가있다 생각 :

@ElementCollection 
    // applies to each element in the collection 
@Convert(YourCustomConverter.class) 
private Map<String, List<String>> mappedData = new HashMap<String, List<String>>(); 

당신이 UserCollectionType처럼 뭔가를 시도 할 수 있습니다 최대 절전 모드로 제공

:

http://www.javalobby.org/java/forums/m91832311.html

관련 문제