2013-06-30 54 views
3

產生我有一個簡單的模型,就像這樣:播放框架2.1.1,@ElementCollection沒有進化

@Entity 
public class Album extends Model { 
    @Id 
    public Long id; 
    public String name; 

    @ElementCollection 
    public Set<String> urls = new HashSet<>(); 

    // ... 
} 

當我運行一個新的數據庫應用,產生一種進化,但不包含任何爲這組網址。它看起來像這樣:

# --- Created by Ebean DDL 
# To stop Ebean DDL generation, remove this comment and start using Evolutions 

# --- !Ups 

create table album (
    id      bigint not null, 
    name      varchar(255), 
    constraint pk_album primary key (id)) 
; 

create sequence album_seq; 

我錯過了什麼?有什麼不同的方式我應該建立這種關係?

編輯:我通過這個通過添加URL實體,並把一個@ManyToOne映射就可以回到相冊kludging,但是這真的不是很大......

回答

3

似乎EBean不支持@ ElementCollection。

要做到這一點的一種方法應該是將你的URL集合聲明爲@Transient(即不持久化),並有方法來管理它,同時保持包含逗號分隔的簡單字符串。那將會是這個字符串被保存在一個列中。

+0

謝謝eskatos。我應該回到這裏,以下是來自EBean的功能請求(從2012年開始):http://www.avaje.org/bugdetail-378.html。我最終存儲了更多詳細信息以及url,所以我的ManyToOne解決方法爲我工作,但無論如何,我都會贊成你:) – rjohnston