我正在研究 CMS 对象的对象缓存。我需要维护产品和子对象(选项和属性)之间的父/子关系。父级(产品)在第一个代码示例中进行了说明。
这很容易做到,但我正在寻找一种方法将孩子分配给父母,如第二个代码块所示,通用。
由于所有 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?
}
}
}