2011-11-30 51 views
0

我有一些關於序列化和持久性的問題。 首先,我得到了一個GWT項目,其中包含客戶端代碼和Servlet,以便與我的EJB項目 進行通信。 在EJB項目中,有一些Persistence Entitie Classes以及彼此之間的引用和Bean來管理它們。 可以看起來是這樣的:GWT + EJB + MYSQL

  Object A 
     / \ 
    Object B  Object C 
         \ 
        Object D 

大多有1:N的關係,這是我與一對多建模或類似這樣的東西.. 我將它們存儲在一個MySQL數據庫,其已經與字符串的工作。 使用字符串我沒有問題將它們從GWT客戶端通過GWt Servlet轉移到EJB Bean,然後轉移到數據庫,並以相同的方式返回到客戶端。 但是,當我嘗試在GWT客戶端和EJB之間傳輸自己創建的Class對象(PO​​JO?)時,我總是得到一個序列化異常。 是因爲GWT Servlet嗎?我讀過一些你必須使用DTo或Value Objects的東西?它是否正確? 還是不是有一個簡單的方法來解決這個問題?

+0

貴POJO類實現序列化接口? – Barry

+0

(在按鈕正常不工作..) 在實體 公共類識別TestClass在標識 \t私人字符串名稱實現Serializable { \t \t; \t at OneToMany(cascade = {CascadeType.REMOVE}) \t私人收藏測試; \t \t公衆識別TestClass(){ \t \t \t} 吸氣+二傳手 在實體 公共類的Test2實現Serializable { \t \t在編號爲GeneratedValue(策略= GenerationType.IDENTITY) \t私人詮釋ID; \t私人字符串名稱; \t \t公衆的Test2(){ \t} 吸氣+二傳手 應該是正確的,我想... – ph09

+0

可以提供系列化異常的更多細節。(複製粘貼堆棧跟蹤)或類似的東西 – Barry

回答

1

請參閱

http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideSerializableTypes

符合上述規範 或實施com.google.gwt.user.client.rpc.IsSerializable可以被序列化的所有類。

例如:

import com.google.gwt.user.client.rpc.IsSerializable; 
import java.util.HashMap; 

public class Row implements IsSerializable 
{ 
    private HashMap _row; 

    public Row() 
    { 
     _row = new HashMap(); 
    } 

    public Row(HashMap row) 
    { 
     _row = row; 
    } 

    public Object getCellValue(String columnName) 
    { 
     return _row.get(columnName); 
    } 

    public void setCellValue(String columnName, Object value) 
    { 
     _row.put(columnName, value); 
    } 

    public HashMap getRow() 
    { 
     return _row; 
    } 
} 

在本文檔中也有下面的鏈接,我從來沒有嘗試過

http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideCustomSerialization