但是,纵使采用这些权益之计,由于Hibernate实现机制中,采用了两条SQL进行一次数据插入操作,相对单条insert,几乎是两倍的性能开销,效率较低,因此,对于性能敏感的系统而言,这样的解决方案所带来的开销可能难以承受。
针对上面的情况,我们想到,如果addr对象知道如何获取user_id字段的内容,那么执行insert语句的时候直接将数据植入即可。这样不但绕开了约束违例的可能,而且还节省了一条Update语句的开销,大幅度提高了性能。
双向一对多关系的出现则解决了这个问题。它除了避免约束违例和提高性能的好处之外,还带来另外一个优点,由于建立了双向关联,我们可以在关联双方中任意一方,访问关联的另一方(如可以通过TAddress对象直接访问其关联的TUser对象),这提供了更丰富灵活的控制手段。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/yangxn/archive/2008/09/09/2903906.aspx