将带有列表的hibernate POJO转换为可序列化的rpc返回对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将带有列表的hibernate POJO转换为可序列化的rpc返回对象相关的知识,希望对你有一定的参考价值。

hibernate POJO只允许列表(一个接口)映射多对一关系。

public class Employee {
private int id;
private String firstName; 
private String lastName;   
private int salary;
private List certificates;

但GWT-RPC只允许具体类型(如ArrayList)作为返回。因此,不是仅为RPC定义具有ArrayList的类似类,

public class EmployeeRPC {
private int id;
private String firstName; 
private String lastName;   
private int salary;
private **ArrayList<Certificate>** certificates;

有没有其他方法将hibernate POJO转换为可序列化的对象?

谢谢

答案

你可以使用List<Serializable>但生成的javascript会更大。

在RPC调用中传递对象时,最好在RPC接口中声明具体的参数类型。如果由于某种原因您无法在RPC接口中使用具体类,请尝试尽可能具体。 这是因为GWT编译器在发出javascript时必须考虑编译单元中List的所有可能变体。这包括在类路径中扩展List和Serializable接口的所有类。排列可能很大,这将影响您的编译时间以及应用程序下载大小。

Full answer here

使类可序列化为GWT RPC:

如果类符合以下三个要求,则可以序列化: - 它直接实现Java Serializable或GWT IsSerializable接口,或者因为它派生自超类。 - 它的非最终非瞬态实例字段本身是可序列化的,并且 - 它有一个带有任何访问修饰符的默认(零参数)构造函数(例如私有Foo(){}将起作用)

Docu

你必须将这些东西添加到你的班级......同时确保Certificate是可序列化的。

或者只使用JSON:resty-gwtgwt-jackson

以上是关于将带有列表的hibernate POJO转换为可序列化的rpc返回对象的主要内容,如果未能解决你的问题,请参考以下文章

将拖动的项目转换为可放置的

java Hibernate命名查询POJO转换

如何将 csv 文件转换为可作为文本读取的列表列表? Python

无法从 Spring Boot REST 中的 Hibernate POJO 返回 JSON

将 pandas Dataframe 的行转换为可迭代的字符串列表

使用jackson将pojo(对象列表)转换为java中的json