hibernate POJO只允许 list (这是一个界面)来映射多对一关系。
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转换为可序列化的对象?
由于
答案 0 :(得分:0)
您可以使用if($request->search_schedule_day != null) {
$q->where(function($query)use($request) { // group orWheres
for ($request->search_schedule_date as $day) {
$query->orWhere('schedule_day', $day);
}
}
}
,但生成的javascript会更大。
在RPC调用中传递对象时,最好在RPC接口中声明具体的参数类型。如果由于某种原因你不能在RPC接口中使用具体类,尽量尽可能具体 这是因为GWT编译器在发出javascript时必须考虑编译单元中List的所有可能变体。这包括在类路径中扩展List和Serializable接口的所有类。排列可能很大,这将影响您的编译时间以及应用程序下载大小。
为GWT RPC创建一个可序列化的类:
如果一个类满足这三个要求,则可以序列化:
- 它直接实现Java Serializable或GWT IsSerializable接口,或者因为它派生自超类。 - 它的非最终非瞬态实例字段本身是可序列化的,并且 - 它有一个带有任何访问修饰符的默认(零参数)构造函数(例如私有Foo(){}将起作用)
你必须把这些东西添加到你的班级......
另外,请确保List<Serializable>
可序列化。
或者只使用JSON:resty-gwt,gwt-jackson