0

collection/lookup tables/in を処理するためのベストプラクティスが何であるかわかりませんRequestFactory

たとえば、次の 2 つの Domain オブジェクトがあるとします。

@Entity
public class Experiment  {
    private Long id;
    private String name;

    @ManyToOne(cascade={CascadeType.PERSIST,CascadeType.MERGE})
    private UnitOfMeasure unitOfMeasure;

    public Experiment() { }

    public String getName() {
        return name;
    }
    public Long getId() {
        return id;
    }
    public void setName(String name) {
        this.name = name;
    }

    public UnitOfMeasure getUnitOfMeasure()  {
        return unitOfMeasure;
    }

    public void setUnitOfMeasure(UnitOfMeasure unitOfMeasure)  {
        this.unitOfMeasure = unitOfMeasure;
    }
}

@Entity
public class UnitOfMeasure  {
    private Long id;
    private String unit_type;

    public UnitOfMeasure() { }

    public String getUnitType() {
        return unit_type;
    }
    public Long getId() {
        return id;
    }
    public void setUnitType(String unitType) {
        this.unit_type = unitType;
    }
}

これは、テーブル内の ForeignKey と ForeignKey のExperiment間の通常の単方向 1:n 関係です。 通常は変更されない限られた数の異なるインスタンスがあります。UnitOfMeasureExperiment
UnitOfMeasure

Web アプリは、ユーザーがExperimentインスタンスの一部のプロパティを変更できるビューを提供します。ビューはEditor framework. UnitOfMeasure特定の を変更するには、Experimentを使用してプロパティValueListBoxをレンダリングしunit_typeます。

UnitOfMeasure使用可能なインスタンスのリストは静的であるためAutoBeanFactory、HTML ホスト ページに配置する json 文字列を作成するために使用し、アプリケーションの起動時にそれを解析し (テーブル値などの他のすべてのコレクションでも同じです)、Singleton クラス インスタンスに格納します ( AppData) を `setAcceptableValues` に渡します。

UnitOfMeasureProxy現在、私はから派生していますEntityProxyが、それをデコード/エンコードするにAutoBeanFactoryは、Factory に注釈を付ける必要がありEntityProxyCategoryます。ValueProxy私はどういうわけか、 a の方が適しているのではないかと疑っています。
ただし、特定のValueProxyを変更すると、インスタンス全体がネットワーク経由で送信されます。 ただし、データベースの観点からは、テーブル内の外部キーの値を変更するだけで済みます。UnitOfMeasureExperimentValueProxy
Experiment

では、テーブルや子の値などのコレクションのベスト プラクティス ( ValueProxyvs ) はそれぞれ何ですか?EntityProxy

4

1 に答える 1

1

In many cases, references to other entities are best modelled using their IDs rather than the EntityProxys themselves (it's debatable, but I think it's also true for server-side code, or actually any code that crosses unit-of-work boundaries –JPA EntityManager lifetime, Hibernate session, etc.–)

BTW, the proper way to serialize RequestFactory proxies is to use a ProxySerializer.
Make sure you use GWT 2.5.0-rc1 though if you have lists of ValueProxys (see issue 6961)

于 2012-08-23T13:41:11.857 に答える