2016-05-19 5 views
0

私はヘルプが必要ですが、マップを使用しようとしていますが、ここorg.hibernate.MappingException:java.util.Listの型を判別できませんでした。列:assignedRolesのSchedule_assignedRoles

Caused by: org.hibernate.MappingException: Could not determine type for: java.util.List, at table: Schedule_assignedRoles, for columns: [org.hibernate.mapping.Column(assignedRoles)] at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:390) at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:363) at org.hibernate.mapping.Collection.validate(Collection.java:310) at org.hibernate.mapping.IndexedCollection.validate(IndexedCollection.java:74) at org.hibernate.boot.internal.MetadataImpl.validate(MetadataImpl.java:333) at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:443) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:802)

私のコード:

@Entity 
public class Schedule extends PersistentObject implements Comparable<Schedule> { 
    private String title; 

    @ManyToOne 
    private Agent target; 

    @ElementCollection 
    @MapKeyColumn(nullable = false) 
    @Column(nullable = false) 
    private Map<Long, List<Role>> assignedRoles = new HashMap<>(); 

    //gets e setters 
} 

感謝です! :D

+1

のために十分であると思いますか? –

+0

私はそれが可能だと思います。ありがとう! – renanlessa

答えて

0

私は@ManyToManyまたは@OneToManyを使用すると、JPAを使用して地図にList型の値を埋め込むことが可能だったことを言ったあなたのタスク

@Entity 
public class Schedule extends PersistentObject implements Comparable<Schedule> { 

    @Column 
    private String title; 

    @ManyToOne 
    private Agent target; 

    @OneToMany 
    private List<Unit> units = new List<>(); 

} 

@Entity 
public class Unit { 

    @ManyToMany 
    private List<Role> assignedRoles = new List<>(); 

} 
+0

ちょっと、 スケジュールがキー(ユニット、他のオブジェクト)をロールのリストと共に保存しなければならないので、可能ならマップが必要です。とにかくありがとうございます! – renanlessa

+0

@renanlessa地図を使うことはできません。おそらく、もう1つのエンティティが必要です。私は更新する。 –

+0

私はこれをやっていきます、ありがとう! :D – renanlessa

関連する問題