是否可以在HBM中的SET元素中定义默认对象?

时间:2011-04-12 14:01:38

标签: java hibernate hibernate-mapping hbm

假设我在Parent hbm文件中有一个集合的映射:

    <set cascade="all" inverse="true" lazy="false" name="children">
       <key column="parentChildId" foreign-key="fk_fk" not-null="true" on-   
         delete="cascade"/>
     <one-to-many class="Child" not-found="ignore"/>
   </set> 

无论如何可以在Parent hbm中定义一个默认子节点,当创建父节点时,在该集合中添加一个子节点????

我知道这听起来很奇怪,但由于一些性能问题,我必须尝试创建至少对服务器的调用(这里一个是保存父节点,其他调用是保存默认子节点。)

我感谢所有的帮助。

谢谢

1 个答案:

答案 0 :(得分:2)

“服务器”是什么意思?你的意思是数据库服务器?如果是这样,那么就无法在一个SQL语句中创建父级和子级。但是Hibernate使用批量更新,因此应该非常有效。

如果您的意思是“应用程序服务器”,那么它听起来像是一个功能问题,而不是技术问题。更改父创建方法以使其同时创建子项。您甚至可以使用Parent类中的工厂方法执行此操作:

public class Parent {
    public static Parent createParentWithDefaultChild() {
        Parent p = new Parent();
        p.addChild(new Child());
        return p;
    }
    // ...
}