2016-07-07 5 views
2

Можем ли мы иметь аннотацию ElementCollection в поле с коллекцией в коллекции?JPA Hibernate и имеющий ElementCollection для карты

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

Я получаю MappingException в данный момент с этим так не уверен, если есть дополнительные аннотации или код, участвующие или если я должен сделать новый класс и, возможно, использовать Встраиваемый и Embedded

+0

Будьте осторожны с вложенными коллекциями. Что произойдет, если вам нужно позже изменить 'List' на' Set'? См. Полезный совет от @AlexR при использовании компонента: http://stackoverflow.com/questions/16516107/how-can-i-store-hashmapstring-arrayliststring-inside-a-list – bphilipnyc

ответ

1

Вы можете использовать UserType или конвертер атрибутов с JPA, прикрепленный к вашей коллекции, я считаю. Я никогда не испытывал его на инкассо, но я считаю, что это стоит выстрел:

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

Когда дело доходит до Hibernate вы можете попробовать что-то вроде этого UserCollectionType:

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

Смежные вопросы