2010-12-29 2 views
0

Я использую hibernate 3.5 с базой данных Sybase ASE. У меня есть первичный ключ PK1 в таблице таблицы. Я использовал класс генератора для генерации первичного ключа.Генератор идентификаторов в спящем режиме с Sybase

<id name="pk1" type="java.math.BigInteger"> 
      <column name="PK_ID" /> 
       <generator class="select"> 
        <param name="key">unique</param> 
       </generator> 
</id> 

У меня есть еще один класс, который использует PK_ID в качестве внешнего ключа, но не первостепенный key.I сохранили отображение для него, как,

<property name="PK_ID1" type="java.math.BigInteger"> 
      <column name="SHIP_EVENT_ID" length="23" not-null="false" /> 
</property> 

Когда я использую генератор тождественное это похоже на работу отлично. Но когда я меняю его на выбор генератора. Он показывает мне исключение нарушения ограничений. Хотя новое значение генерируется и устанавливается в класс pojo для второй таблицы.

Пожалуйста, помогите!

С уважением, Dwarak

ответ

0

С двигателем, как ASE в задней части, это не очень хорошая идея, чтобы использовать некоторые OO передний конец, чтобы сделать изменения DDL. Конечно, это ошибка в интерфейсе, но это не единственный. Более важно иметь доступ только к 5% функциональности Sybase. Почему бы не использовать Softwarw Sybase Client, который поставляется с ASE. SybaseCentral для всех ваших задач DDL и администрирования и InteractiveSQL для всех ваших задач SQL (DML, хранимых процедур, тестирования SQL). Это не только более прямой, это много более быстрое время разработки. После того, как у вас установлены и протестированы объекты, используйте любой внешний интерфейс, который вам нравится выполнять команды (хранимые procs или проверенные SQL) в отношении этих объектов.

Смежные вопросы