双向o2m / m2o在SQL效率方面胜过单向o2m?

时间:2010-03-05 20:58:46

标签: hibernate orm coldfusion coldfusion-9

使用这两个持久性CFC,例如:

// Cat.cfc
component persistent="true" {
  property name="id" fieldtype="id" generator="native";
  property name="name";
}

// Owner.cfc
component persistent="true" {
  property name="id" fieldtype="id" generator="native";
  property name="cats" type="array" fieldtype="one-to-many" cfc="cat" cascade="all";
} 

当一对多(单向)注意:单向上的inverse = true将产生不希望的结果

insert into cat (name) values        (?)
insert into Owner default values
update cat set Owner_id=? where id=?

当一对多/多对一(在Owner.cats上双向,反向=真)时:

insert into Owner default  values
insert into cat (name, ownerId) values (?, ?) 

这是否意味着设置双向o2m / m2o关系是首选'因为插入实体的SQL效率更高?

1 个答案:

答案 0 :(得分:0)

'首选'很复杂。

对于'cat'而言,默认所有者的想法没有意义,它可能适用于工厂或商店的情况,一旦创建“产品”,它就会成为“工厂”的默认“位置”