2011-11-11 87 views
0

我有點困惑,我的印象是,類只需要實現序列化下好了,如果我需要它們序列化(如,休眠不需要類可序列化,如果所有我想要的是持久性)Hibernate和序列化

不管怎麼說,下面讓我有點糊塗了。我有一個班級,我們稱之爲A.與另一班級有一對一的關係。讓我們稱之爲B.

我現在又添加了另一個與C類的一對一關係,現在,當我使用mySession.get(A.class,myid)時,我得到了運行時異常我是c不能被轉換爲串行化

我不能做的,爲什麼C需用有序列化的實現時,我沒有其他的Hibernate類的任何需要它的SENCE。

更新

另一個奇怪的是,這個映射實際上沒有工作的「C」級是在過去的序列化。

我做的表裏面的數據的手動更改,雖然,使用mysql客戶端。我運行了一個更新,它使用UPPER()函數將表中的所有字符串轉換爲大寫。難道這是什麼讓冬眠希望類是現在可序列化?

回答

2

該錯誤是常見的,當你忘了做映射到類的持久對象,

比如你有一個持續存在的類用戶中有另一個持續存在的類地址

,地址映射到,但在用戶你忘了做一對一的,那麼你映射爲基本類型的關係

檢查你的代碼的關係,任何赦免映射

+0

您好,謝謝您的回答。映射應該沒問題。我會更新我的問題以嘗試並提供更多信息 – JustDanyul

+0

在C類中您是否使用延遲加載方法? – osdamv

+0

是我使用延遲加載,但是,它好像如果我從數據庫表中清除所有「C」的情況下,它並不需要是可序列化,直到數據被放入表。它可能與代理有關嗎? – JustDanyul