EJB 2.0 EntityBean + ссылка на автоинкрементное поле
Добавлено: 21 июн 2006, 11:21
Добрый день!
Не подскажет ли кто как побороть следующую проблемку:
Имеется некий EntityBean, Customer одним из полей котороя является поле отношения, т.е. foreign-key на поле другого EntityBean Address. При чем primary-key в таблице ADDRESS является автоинкрементным полем.
Теперь собсно суть проблемы:
При попытке создать новый обьект Address (нечто вроде
) JBOSS ругается следующим образом:
[IBM][CLI Driver][DB2/NT] SQL0798N Нельзя задавать значение для столбца "ID", который определен как GENERATED ALWAYS. SQLSTATE=428C9
Если же поле сделать обычным а не автоинкрементным, то ошибка такая:
[IBM][CLI Driver][DB2/NT] SQL0407N Пустое значение (NULL) невозможно присвоить столбцу "TBSPACEID=2, TABLEID=4, COLNO=0", определенному как не допускающий пустых значений. SQLSTATE=23502
фрагмент деплоймент-дескриптора:
Не подскажет ли кто как побороть следующую проблемку:
Имеется некий EntityBean, Customer одним из полей котороя является поле отношения, т.е. foreign-key на поле другого EntityBean Address. При чем primary-key в таблице ADDRESS является автоинкрементным полем.
Теперь собсно суть проблемы:
При попытке создать новый обьект Address (нечто вроде
Код: Выделить всё
addressHome.create()
[IBM][CLI Driver][DB2/NT] SQL0798N Нельзя задавать значение для столбца "ID", который определен как GENERATED ALWAYS. SQLSTATE=428C9
Если же поле сделать обычным а не автоинкрементным, то ошибка такая:
[IBM][CLI Driver][DB2/NT] SQL0407N Пустое значение (NULL) невозможно присвоить столбцу "TBSPACEID=2, TABLEID=4, COLNO=0", определенному как не допускающий пустых значений. SQLSTATE=23502
фрагмент деплоймент-дескриптора:
Код: Выделить всё
<relationships >
<ejb-relation >
<ejb-relation-name>Customer-Address</ejb-relation-name>
<ejb-relationship-role >
<ejb-relationship-role-name>Customer-has-an-Address</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source >
<ejb-name>Customer</ejb-name>
</relationship-role-source>
<cmr-field >
<cmr-field-name>homeAddress</cmr-field-name>
</cmr-field>
</ejb-relationship-role>
<ejb-relationship-role >
<ejb-relationship-role-name>Address-belongs-to-Customer</ejb-relationship-role-name>
<multiplicity>One</multiplicity>
<relationship-role-source >
<ejb-name>Address</ejb-name>
</relationship-role-source>
</ejb-relationship-role>
</ejb-relation>
<!--
To add relationships for beans not managed by XDoclet, add
a file to your XDoclet merge directory called relationships.xml that contains
the <ejb-relation></ejb-relation> markups for those beans.
-->
</relationships>