Я борюсь с фабрикой запросов в gwt. Я могу заставить его работать с классами Generics и Polymorphic. Смотрите здесь:Is RestyGWT работает с классами 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 в качестве транспортного слоя. Это новое приложение, поэтому переписывать нечего. Я думал, что РФ удовлетворит мои потребности, к сожалению, я не мог заставить его работать. Поэтому я думаю о 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>>();
}
}
}
Из любопытства, какие проблемы вы все еще имеете с РФ? Есть ли ошибка? От взгляда на ваши другие вопросы у меня возникает ощущение, что у вас возникает проблема, с которой я столкнулся, когда метод не может быть вызван, если он не объявлен в RequestContext для типа дочернего объекта. Если расширять GenericContext, вам нужно снова добавить этот метод в дочерний интерфейс RequestContext. Это дополнительная работа, но это позволило мне использовать GenericContext как, когда я хотел сделать код чистым. –
Я хотел бы избежать повторения кода. Я ношу, что общий не работает из коробки. Я все еще борюсь с РФ. – masterdany88