0

我想在实体中放置一个额外的集合。但是 Ebean 似乎无法处理它,并且在我阅读它时总是给我 null 。

@Entity
public class MyData extends Model {
    @ElementCollection
    public Set<String> extra = new HashSet<String>();
}
4

1 回答 1

1

Ebean 仅支持 JPA 1.0 并添加了一些模式注释,如 @PrivateOwned。不幸@ElementCollection的是尚不支持(Ebean 2.8.x),并且有针对此问题的票http://www.avaje.org/bugdetail-378.html

您今天唯一能做的就是创建一个字符串实体表(一个具有字符串字段和 ID 的实体),或者如果集合不太大,您可以自己将字符串扁平化为单个字符串。

public String extra;

public Set<String> getExtra() {
    // Split the string along the semicolons and create the set from the resulting array
    return new HashSet<String>(Arrays.asList(extra.split(";")));
}

public void setExtra(Set<String> extra) {
    // Join the strings into a semicolon separated string
    this.extra = Joiner.on(";").join(extra);
}
于 2012-12-08T09:38:32.397 回答