我有一个简单的模型,如下:
@Entity
public class Album extends Model {
@Id
public Long id;
public String name;
@ElementCollection
public Set<String> urls = new HashSet<>();
// ...
}
当我在新数据库上运行应用程序时,会生成一个进化但不包含任何url的内容。它看起来像这样:
# --- 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映射放回到相册来解决这个问题,但这真的不太好......
答案 0 :(得分:3)
似乎EBean不支持@ElementCollection。
这样做的一种方法应该是将你的网址集声明为@Transient(即没有持久化)并拥有管理它的方法,同时保持最新的包含你的标记逗号分隔的简单字符串。那就是这个String被保存在一个列中。