GWT&x2B;EJB+;MYSQL

GWT&x2B;EJB+;MYSQL,mysql,gwt,ejb,Mysql,Gwt,Ejb,我有一些关于序列化和持久性的问题。 首先,我有一个GWT项目,其中包含客户机代码和一个Servlet以进行通信 我的EJB项目。 在EJB项目中,有一些持久的实体类,它们彼此之间有引用,并有bean来管理它们。 参考可能如下所示: Object A / \ Object B Object C \ Object D 主要是1:n关系,我必须用one

我有一些关于序列化和持久性的问题。 首先,我有一个GWT项目,其中包含客户机代码和一个Servlet以进行通信 我的EJB项目。 在EJB项目中,有一些持久的实体类,它们彼此之间有引用,并有bean来管理它们。 参考可能如下所示:

         Object A
          /     \
    Object B     Object C
                       \
                     Object D
主要是1:n关系,我必须用oneToMany或类似的东西来建模。。 我将它们存储到一个MYSQL数据库中,该数据库已经可以使用字符串。 对于字符串,通过GWTServlet将它们从GWT客户端传输到EJBbean,然后再传输到数据库,再以同样的方式传输回客户端,我没有遇到任何问题。 但当我尝试在GWT客户机和EJB之间传输自己创建的类对象(POJO?)时,总是会遇到序列化异常。 是因为GWT Servlet吗?我读到一些你必须使用DTo或值对象的东西?这是正确的吗? 还是没有一个简单的方法来解决这个问题?

请参见

符合上述规范的所有等级 或者实现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;
    }
}
在文档中还有下面的链接,我从未尝试过


您的POJO类是否实现了序列化接口?(正常的at按钮不起作用..)at实体公共类TestClass实现了可序列化的{at Id私有字符串名称;at OneToMany(cascade={CascadeType.REMOVE})私有集合测试;公共TestClass(){}实体公共类Test2的getter+Setter在GeneratedValue(strategy=GenerationType.IDENTITY)处实现可序列化的{at Id}private int Id;private String name;public Test2(){}getter+Setter应该是正确的,我想..您能提供有关序列化异常的更多详细信息吗?(复制粘贴堆栈跟踪)或者类似的东西来澄清我的项目结构:Entities+SessionBean:GWT Servlet:我有一个GWT客户端,在那里我暂时想使用EJB项目中的POJO。然后有一个GWT Servlet,它在那里与我的EJB项目通信。至少我有一个EJB项目和会话bean,用于管理持久性实体,应该能够传输到GWT客户端。当我想测试我是否可以持久化这个小示例时,我得到了以下例外:似乎我无法使用Transactionmanagement。我如何告诉我的GWT项目我有哪些持久化实体?