0

gwt のリクエスト ファクトリに苦労しています。Generics および Polymorphic クラスで動作させることができます。ここを参照してください:

ジェネリックを使用した型付きクラスの RequestFactory クライアント側継承

Gwt リクエスト ファクトリ。クライアント側のジェネリックと継承

RequestFactory エンティティのパラメーター: List<OfOtherEntity> はクライアントで null です。サーバー上は大丈夫です

トランスポートレイヤーとして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>>();
        }
    }
}
4

1 に答える 1

0

はい、Resty でジェネリックを使用しても問題はありません。ジャクソンの注釈を継承のために正しく取得するには、少し操作する必要があります。主に@JsonSubTypes@JsonTypeName.

エラーハンドリングは多かれ少なかれ自分で処理する必要があることに注意してください。残りのアプリケーションを動作させるには、rf よりもかなり多くのコードがありますが、IMHO により、より多くのプラットフォーム タイプに対して API の移植性が向上します。

これはあなたが尋ねていることの例です。いくつかのエッジケースを解決するために、ユニットテストを頻繁に使用しました。

https://github.com/resty-gwt/resty-gwt/blob/master/restygwt/src/test/java/org/fusesource/restygwt/client/basic/ParameterizedTypeDTO.java

于 2015-12-01T18:30:14.977 に答える