我想在实体中放置一个额外的集合。但是 Ebean 似乎无法处理它,并且在我阅读它时总是给我 null 。
@Entity
public class MyData extends Model {
@ElementCollection
public Set<String> extra = new HashSet<String>();
}
我想在实体中放置一个额外的集合。但是 Ebean 似乎无法处理它,并且在我阅读它时总是给我 null 。
@Entity
public class MyData extends Model {
@ElementCollection
public Set<String> extra = new HashSet<String>();
}
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);
}