2014-12-13 2 views
0

У меня есть следующие классыУпорно Карту в JPA

class Category { 
    Long id; 
} 
class Question { 
    Long id; 

    @OneToOne (cascade=CascadeType.ALL) 
    Category category; 
} 
class Test { 
    Long id;  
    Map<Category, Long> splitUp; 
} 

Эти частичные версии моих классов, я аннотированный категорию и Quesiton классы, но возникли проблемы с аннотирования карта «splitUp» в классе Test , Я хотел бы помочь в этом.

+0

На это ответили: http://stackoverflow.com/questions/3393649/storing-a-mapstring-string-using-jpa –

+1

@OlivierMeurice На него не ответил. У меня есть ключ, который типа Category, а не аннотации отношений String ergo, должен быть добавлен дополнительно, который был у меня с ошибкой – AbrahamDaniel

+0

См. Https://stackoverflow.com/questions/11325059/mapping-map-with-anentity -as-a-key-in-jpa, но, как показывают ответы, JPA правильно не подходит для ключа Entity (и значения не-Entity), поэтому он взломан. Он также настаивает на том, что у вас есть таблица соединений, тогда как было бы неплохо иметь возможность иметь значение как поле в ключевой сущности (не уверен, что вы намеревались это, но просто отметили его), тогда как этот маршрут ElementCollection Допустим это. –

ответ

1
class Test { 
    Long id;  

    @ElementCollection 
    @JoinTable(name = "CATEGORY_JOIN_TABLE", joinColumns = @JoinColumn(name = "category_join_table_id_column")) 
    @MapKeyJoinColumn (name = "category_id") 
    @Column(name = "id") 
    Map<Category, Long> splitUp; 
} 

Это должно сработать.

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