我正在尝试将数组对象保存在实体类中,我想将其存储在GAE数据存储区中。可悲的是,我正在尝试初始化阵列时遇到异常。
我收到此错误:
java.lang.UnsupportedOperationException:不支持FK数组。
我的班级看起来像这样:
@Entity
public class Game {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
...
@Persistent
private Profile[] players = new Profile[4];
...
public void setPlayers(Profile player) {
if (pcount.intValue() < 4) {
this.players[pcount] = player; //Here I get the exception
pcount = Integer.valueOf(pcount.intValue() + 1);
}
}
}
Profile
也是一个实体类。
出了什么问题?我怎么能解决这个问题。如果有人可以向我解释,那会很有意思!
答案 0 :(得分:0)
您需要将Profile
实体注释为@Embeddable
,并在Game
实体中注释players
字段为@Embedded
。有关JPA注释的详细信息,请查看JPA 2 Annotations。这样,所有Profile
文件都将显示为Game
实体的内嵌字段。如果您只想保留Game
实体与Profile
实体的引用,则可以使用Key
而不是Profile
的数组。例如,
private Key[] players = new Key[4];
希望这有帮助。