Можно ли определить объект по умолчанию внутри элемента SET в HBM? - PullRequest
1 голос
/ 12 апреля 2011

Допустим, у меня есть сопоставление набора в родительском файле 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 Ответ

2 голосов
/ 12 апреля 2011

Что вы подразумеваете под "сервером"? Вы имеете в виду сервер базы данных? Если это так, то невозможно создать родителя и потомка в одном операторе SQL. Но Hibernate использует пакетные обновления, поэтому он должен быть очень эффективным.

Если вы имеете в виду «сервер приложений», то это звучит как функциональная проблема, а не техническая. Измените метод создания родительского объекта, чтобы он одновременно создавал дочерний элемент. Вы могли бы даже сделать это, используя фабричный метод в классе Parent:

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