2009-09-01 4 views
8

休止状態を使用して、List<String>フィールドでクラスを永続化するにはどうすればよいですか?その後、休止状態のコレクションフィールドを持続する

[INFO] An exception occured while executing the Java class. null 

Could not determine type for: java.util.List, at table: Blog, for columns: [org.hibernate.mapping.Column(list)] 

私はgetList()に '@CollectionOfElements' を追加しようとしたが、私はそれを保存しようとするとしかし、私は次のエラーを取得する

@Entity 
public class Blog { 
    private Long id; 
    private List<String> list; 

    @Id 
    @GeneratedValue 
    public Long getId() { return id; } 
    public void setId(Long id) { this.id = id; } 

    public List<String> getList() { return list; } 
    public void setList(List<String> list) { this.list = list; } 
} 

は、次のエンティティクラスを考えてみましょうidのみがライブラリに保存されます。リストに対応する列は作成されません。

注:私はちょうど休止状態にしようとしているので、私たちは私が休止状態

答えて

7

Thisをご覧ください。多分それは助けになるでしょう。

次のように@CollectionOfElementsを適用しましたか?

@org.hibernate.annotations.CollectionOfElements(
targetElement = java.lang.String.class 

+0

ありがとう!マッピングを保存するための新しいテーブルが作成されます – notnoop

0

でコレクション・リレーションシップ・マネジメントを理解するのに役立ちますドキュメントのリンクを使用することができますが、基本的に、あなたは何でリストを伝えるためにHibernate Annotations Documentation about Collectionsを見ているがありますそれが立つ関係。

@OneToMany(mappedBy="blog") 
public List<String> getList() { return list; } 

次に動作するはずです。

+0

私は次のエラーが発生します: '@OneToOneまたは@ManyToOne on uk.co.pookey.hibernate.model.Blog.listは未知のエンティティを参照しています:java.util.List – notnoop

+0

これはうまくいくはずです。 HibernateアノテーションまたはJPAアノテーションをインポートしましたか? – Daff

+0

インポートJPA javax.persistence注釈 – notnoop

0

Serializableオブジェクトを使用して、より良い動作しているようです。 listプロパティをArrayList<String>に変更すると問題が解決するようです。