我在gwt中与请求工厂斗争。我可以使用Generics和Polymorphic类。见这里:
RequestFactory client-side inheritance of typed class with generics
Gwt Request Factory. Generics and Inheritance on client side
RequestFactory Entity's parameter: List<OfOtherEntity> is null on client. On server is ok
我想改用restygwt作为运输层。 这是一个新的应用程序,因此没有太多要重写。 我认为RF将满足我的需求,不幸的是我无法使其工作。所以我在考虑Resty。
请告诉我它是否适用于下面的泛型和多态类:
@MappedSuperclass
public class GenericModel<T extends GenericModel<T>> implements Identifiable, Versionable {
getId();
getVersion();
}
@MappedSuperclass
public abstract class GenericDictionaryModel<T extends GenericModel<T>> extends GenericModel<T> { getName();
getActive();
}
@Entity class VocabularyDictionaryModel extends GenericDictionaryModel {
someCustomeMethod();
}
public class GenericDao<T extends GenericModel<T>> {
public List<GenericModel<T>> getList() {
return JPA.em().createQuery("FROM " + entityClass.getSimpleName()).getResultList();
}
}
public class GenericDictionaryDao<T extends GenericDictionaryModel<T>> extends GenericDao<T>{
public List<GenericDictionaryModel<T>> getListOrderedByName() {
try {
return JPA.em()
.createQuery("FROM " + entityClass.getSimpleName() + " ORDER BY name")
.getResultList();
} catch (ClassCastException e) {
return new LinkedList<GenericDictionaryModel<T>>();
}
}
}
答案 0 :(得分:0)
是的,使用Resty的泛型不应该有问题。你将不得不玩杰克逊注释一点,以使他们正确的继承。主要是@JsonSubTypes
和@JsonTypeName
。
请记住,您必须自己或多或少地处理错误处理。有更多的代码来使其余的应用程序工作比rf,但恕我直言,它使你的API更容易移植更多的平台类型。
以下是您要问的一个示例。我经常使用单元测试来解决一些边缘情况。