2013-01-04 75 views
0

在我的域模型中,我有一個用戶實體,其中包含另一個用戶(複合模式)。當我想堅持用戶,我得到一個錯誤,說「數據太長了列......」。發生這種情況是因爲包含的用戶被試圖存儲爲BLOB。我想要存儲包含的用戶的ID - 而不是整個對象作爲BLOB。JPA:用戶實體包含另一個用戶實體

我要在這種情況下使用什麼樣的註釋?基數是1:0..1 - 因此用戶可以包含另一個用戶。

這裏是代碼...

@Entity 
@Table(name="flex_app_user") 
public class User implements Serializable { 

private User client; 

public User(){ 

} 

@OneToOne 
public User getClient() { 
    return client; 
} 
} 

...和問題,導致在數據模型的變化。正確的註釋是OneToOne。一切正常。

親切的問候, 約亨

+0

@JB Nizet - >我把代碼放在我的第一篇文章中 –

回答

2

註釋必須@OneToOne

+0

我已經用\ @OneToOne註解了它。這沒有效果。我是否必須使用\ @Column註釋來添加更多信息? –

+0

向我們展示實體的代碼。告訴我們你正在做什麼(即代碼)與實體。告訴我們你希望這個代碼做什麼,以及它做了什麼。要做到這一點,編輯你的問題。 –

0

因爲您正在使用複合模式,您可以在關係使用船上使用(fetch=FetchType.LAZY)

+0

這會影響有關持久性的任何事情嗎?問題是整個對象存儲爲BLOB。這不是必需的。只是userId應該是正確和足夠的。 –

相關問題