0

我正在尝试将数组对象保存在实体类中,我想将其存储在 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也是一个实体类。

什么地方出了错?我怎么能解决这个问题。如果有人可以向我解释,那就太好了!

4

1 回答 1

0

您需要将您的Profile实体注释为@Embeddable并在您的Game实体中将players字段注释为@Embedded。有关 JPA 注释的详细信息,请查看JPA 2 Annotations。这样,所有文件都Profile将显示为您Game实体的内联字段。如果您只想保留Game实体对实体的引用,则可以使用and notProfile的数组。例如,KeyProfile

private Key[] players = new Key[4];

希望这可以帮助。

于 2012-10-30T18:39:45.700 回答