2010-11-19 1 views
2

私はGWTでJDOを使用して永続化しているデータクラスを持ち、同じクラスの2つのセットを別々に格納する必要があります。合併処理された。
これを行う簡単な方法はありますか?運がない文書でそれを見つけようとしました。JDO(GWT)の単一クラスの複数のテーブル

ありがとう、 Aron。

答えて

2

いいえJDOまたはJPAはこのようなことをサポートしません。明らかに、クラスをサブクラス化し、結合された/処理されたデータのサブクラスを持ち、それをそれ自身のテーブルに格納することができます。

+0

customStrategy =「完全テーブル」

1)

@PersistenceCapable @Inheritance(strategy = InheritanceStrategy.SUBCLASS_TABLE) public class BaseData { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) public Long id; // scan data @Persistent public String Data1 = ""; // etc... } @PersistenceCapable public class ProcessedData extends BaseData { // No key // Thats it } @PersistenceCapable public class RawData extends BaseData { // No key // Thats it } 

2)の継承戦略を有していますありがとう、私はそれが事実だろうかと思った。サブクラス化によって、私はいくつかのメカニズムを見ることができます。たとえば、クラスprocessedDataはRawDataを1つのメカニズムまたはクラスとして拡張します。processedDataはBaseDataを拡張し、RawDataクラスはBaseDataを拡張します。どちらのアプローチのメリットについての考え? – aronp

+0

これを行うにはいくつかの方法がありますが、うまくいけません。私が働かなければならない方法は次のとおりです。 – aronp

1

サブクラス化または別のクラス内にデータを埋め込む多くはGWT上でうまく動作しませんが、ここでは2つのスキーマが動作します。最初の主な機能は、主キーは基本クラスであり、継承ストラテジはSUBCLASS_TABLEです。これは、BaseDataを永続化できないことに注意してください。第2のメカニズムを以下に示す。それにベースクラスを持続することができる通常のクラスであり、派生クラスは

@PersistenceCapable 
@Inheritance(customStrategy = "complete-table") 

public class ProcessedData extends RawData 
{ 
// thats it 
} 

@PersistenceCapable 
public class RawData 
{ 
    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    public Long id; 

    @Persistent 
    public String Data1 = ""; 

    // ... 
} 
関連する問題