0

私はこのモデルを持っています:

@Entity
public class ImageModel extends Model {
@Id
private String id;
private String url;

@ManyToMany(cascade = CascadeType.ALL)
private Map<String,String> tags = new HashMap<>();

public void add(String key, String value){
    tags.put(key,value);
}

public String get(String key){
     return tags.get(key);
}

}

これは、新しいオブジェクトを作成する方法です。

 ImageModel imageModel = new ImageModel();
/* fill object with data */
imageModel.save(); // I saved it

しかし、データを取得しようとすると、HashMap にレコードがありません。

HashMap<String, String> imageTags = (HashMap<String, String>) imageModel.getTags();

ハッシュマップからの情報も保存されるようにするにはどうすればよいですか? 私はすでに他のSOの投稿を見て試しましたが、何もうまくいかないようです: @ManyToMany(cascade = CascadeType.ALL) JPA Map<String,String> mapping

私は Play フレームワーク 2.1 を使用していると言わざるを得ません。

4

1 に答える 1

0

独自のテーブルと ID を持つエンティティを参照するときに使用される ManyToMany を使用しようとしているようです。文字列はエンティティではないため、単純な型には elementCollection を使用することをお勧めします。ElementCollection については、http://wiki.eclipse.org/EclipseLink/Examples/JPA/2.0/ElementCollections で説明してい ます。 マップを使用した簡単な例を示します: http://wiki.eclipse.org/EclipseLink/Development/JPA2.0 /Extended_Map_support#Basic_-_Basic.2FEmbeddable

于 2013-05-24T17:27:16.873 に答える