0
我在創建實體類中的對象時遇到了一些麻煩。我得到以下異常:如何在實體類中保存一個類?
java.lang.IllegalArgumentException: A: name.A is not a supported property type
這裏是一個小的代碼示例:
這是我的實體B類:
@Entity
public class B {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Key key;
private ArrayList<A> token = new ArrayList<A>();
public Profile() {
this.token.add(new Token(1));
this.token.add(new Token(2));
this.token.add(new Token(3));
this.token.add(new Token(4));
}
}
這是我的標準的A類:
public class A {
private Integer id = new Integer(0);
public A(int id) {
this.id = id;
}
}
我將類B保存在數據存儲中。我得到以下例外:
profile = new Profile();
em.persist(profile);
em.close(); //Exception
如果我評論類B中的令牌對象一切正常。我怎麼能在B中使用A類?
好的。如果我把class A設置爲'@ Embeddable',我會得到以下錯誤:'包含一個持久對象,但該字段不允許cascade-persist!'我想,我必須設置關係,對吧?它是OneToMany嗎? – hofmeister
是的,它是一對多的。您也可以將@Embedded放在B類列表的頂部。唯一的問題是,如果你連接一對多,你將不得不在你的A類實體上維護一個單獨的主鍵。 – dinukadev
非常感謝! – hofmeister