0

私はCMSオブジェクトのオブジェクトキャッシュに取り組んでいます。製品と子オブジェクト(オプションと属性)の間の親子関係を維持する必要があります。親(Product)は、最初のコードサンプルに示されています。

簡単に行うことができますが、2番目のコードブロックに示されているように、子を親に割り当てる方法を探しています。

すべてのCMSオブジェクトはCMSContentを拡張するため、ProductIDを使用できます。ただし、フィールド(ProductAttributeなど)を汎用にして、アルゴリズムをメソッドに入れ、親オブジェクトと子オブジェクトを使用してメソッドを呼び出して属性を割り当てる方法はありますか?

ここではHibernateのようなORMフレームワークが適切であることは知っていますが、データベース構造が固定されているため、これは適切ではありません。

public class Product extends CMSContent {
    private List<ProductAttribute> productAttributes;
    private List<ProductOptions> productOptions;

    // getters,setters
}

それらを一致させるためのアルゴリズム。

// attach Product Attributes to Product
for (Product p : listP) {
    Map<String, Object> parameters = new HashMap<String, Object>();
    for (ProductAttribute po : listPA) {
        parameters.put("pid", p.getPid());
        parameters.put("ref", po.getRid());

        int i = jdbcTemplate.queryForInt(sqlAttr, parameters);  // select count(*), 1 if matched.

        if (i == 1) {
            p.getProductAttributes().add(po);  // generic field?
        }
    }
}
4

1 に答える 1

1

製品のこの2つの方法は役に立ちませんか

public void add(ProductAttribute item){
  productAttributes.add(item);
}
public void add(ProductOption item){
  productOption.add(item);
}

したがって、 ProductAttribute または ProductOption を追加するだけでよいはずです

于 2012-08-09T18:15:51.143 に答える