次のようなオブジェクト階層があるとします。
アカウント > サイト > 供給
Account は実際の会社、Site は所有する建物、Supply は または のいずれElecSupply
かGasSupply
です。Supply はインスタンス化されることはなく、理論的には抽象クラスになる可能性があります。
私は永続化のために Objectify を使用しており、各サイトの消耗品のリストを表示するページを持っていElecSupply
ますGasSupply
。
今、私はGWT エディター フレームワークを実装しており、このポリモーフィック エンティティの問題に直面しています。このようなオブジェクトのエディタと一連のサブエディタを実装するにはどうすればよいですか?
@Entity
public class Supply implements Serializable
{
@Id
protected Long id;
@Embedded
protected List<BillingPeriod> billingPeriods = new ArrayList<BillingPeriod>();
public Supply()
{
}
// ...
}
サブクラス: (ElecSupply には 5 つの一意のフィールドがあり、GasSupply には 1 つしかありません)
@Subclass
public class ElecSupply extends Supply implements Serializable
{
private String profile;
private String mtc;
private String llf;
private String area;
private String core;
public ElecSupply()
{
}
}
@Subclass
public class GasSupply extends Supply implements Serializable
{
private String mpr;
public GasSupply()
{
}
// ...
}
ですから、この種の構造の経験があるかどうか知りたいですか?ElecSupply
との別々のエディターを作成しGasSupply
てから、編集ページの一部としてそれらを表示または非表示にしようとしました。
私が考えていたもう 1 つの方法は、単一のエディター (Supply 用) を用意し、編集しているオブジェクトのタイプに応じて異なるサブエディターをロードすることです。
どんな光の小屋もありがたく受け取られます。