2012-05-04 4 views
1

を初期化できませんでした私は、コードを実行したときに、いくつかのフィールドは、設定することが宣言されている、それはようerrorr投げました:iはPostgreSQLのRECSテーブルにRECSモデルのマッピングを持っているコレクション

@Entity 
@Table(name = "RECS", uniqueConstraints = @UniqueConstraint(columnNames = "id")) 
public class Recs implements Serializable, Cloneable { 

    /** 
    * Serialized version unique identifier. 
    */ 
    private static final long serialVersionUID = -7316874431882307750L; 

    @Id 
    @Column(name = "id") 
    private int _id; 

    @Basic 
    @Column(name = "recs_num") 
    private int _recsNum; 

    @Basic 
    @Column(name = "details") 
    private String _details; 

    @Column(name = "d_stamp") 
    private Date _timeStamp; 

    @ElementCollection(fetch = FetchType.EAGER) 
    @Column(name = "recs_detail_name") 
    private Set<String> _recsDetailName; 

    .. 

私のテーブル:

 Column   |   Type    | Modifiers       
-----------------------+-----------------------------+------------------------------- 
id     | integer      | not null default 
recs     | xml       | 
recs_num    | integer      | 
details    | character varying(300)  | 
d_stamp    | timestamp without time zone | default now() 
recs_detail_name  | text[]     

|デシベルで

サンプルrecs_detail_nameは、このようなものです:間違っているかもしれないもの

{"TeleNav GPS Navigator","Photobucket for BlackBerry","Cellfire Mobile Coupons"} 

誰でも知っています?ありがとう

答えて

1

ElementCollectionは、セットがシリアル化される単一の列にマップされません。 String(recs_detail_name)の列と、所有するテーブルの主キーを参照する外部キー列を含む追加のテーブルを使用してマップされます。もちろん、これはhibernate documentationに記載されています。

Setを単一の列にマッピングする場合は、カスタムのユーザータイプを使用する必要があります。

関連する問題