5

私は保存しようとしていMap<String, List<String>>ます; JPAを使用します。

私のエンティティは次のようになります:

@Entity
@Table(name = "Profiles_table")
public class Profiles {

    @Id
    @Column(name = "profile_ID", updatable = false, nullable = false)
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;

    private final HashMap<String, List<String>> AllProfiles;
    ...
}

マップの設定をたくさん試しましたが、機能しません...

私が試した最後のもの:

@ElementCollection
@MapKeyColumn(name = "Profil")
@Column(name = "Permissions")
@CollectionTable(name = "Profiles_permissions", joinColumns = @JoinColumn(name = "profile_ID"))

次の例外がスローされます。

org.hibernate.AnnotationException: Illegal attempt to map a non collection as a
@OneToMany, @ManyToMany or @CollectionOfElements: [...]Profiles.AllProfiles

前もって感謝します

4

3 に答える 3

1

文字列はエンティティではないため、@OneToMany などを使用しないでください。

これを試しましたか:

@CollectionOfElements
private Map<String, List<String>> allProfiles;
于 2013-02-01T15:01:03.990 に答える
0

AllProfiles をインターフェイス タイプ (Map としましょう) として宣言しようとしましたか? ConcurrentHashMap に注釈を付けるときに、休止状態で「非コレクションを @OneToMany、@ManyToMany、または @CollectionOfElements としてマップしようとする不正な試み」をチェックします。

于 2013-01-31T15:44:58.007 に答える