проблемы с ограничениями с использованием apache derby и hbm2ddl

Мы используем Apache Derby 10.5.3.0_1 и hbm2ddl с Hibernate 3.3.x.

Я получаю следующую ошибку ограничений при предварительной загрузке SQL во встроенную базу данных derby. Если я удалю первичный ключ (id) из таблицы создания sql, он сможет создать таблицу. Не уверен, что проблема здесь.

create table user_flow (id integer not null generated always as identity unique, creation_date timestamp not null, name varchar(255), primary key (id));

[INFO] Constraints 'SQL100219175052781' and 'SQL100219175052780' have the same set of columns, which is not allowed.

person Joe    schedule 19.02.2010    source источник


Ответы (1)


Насколько я знаю, это DERBY-789, и он еще не исправлен. Основная проблема заключается в том, что столбец объявлен как «уникальный» и как «первичный ключ», из-за чего Derby пытается создать два индекса ограничений. Поскольку «первичный ключ» уже подразумевает «уникальный», вы можете просто опустить «уникальный», что, я думаю, лучше, чем опустить «первичный ключ».

person Bryan Pendleton    schedule 19.02.2010
comment
Похоже на известную проблему дерби, но SQL был сгенерирован инструментом Hibernate 3.3.x hbm2ddl. Не уверен, есть ли обходной путь для этого инструмента, чтобы избежать создания уникальных полей первичного ключа. - person Joe; 22.02.2010
comment
Вышеупомянутая ошибка делает derby непригодным для использования с Hibernate 3.3.x. Значит ли это, что никто не использует его в качестве платформы для разработки? Цените любые указатели или обходные пути для решения этой проблемы. - person Joe; 24.02.2010
comment
Вы пытались спросить совета у сообщества Hibernate? Я понимаю, что есть что-то, что называется «Диалект Дерби для Hibernate»; возможно, вы можете настроить это так, чтобы Hibernate не генерировал этот SQL в этом случае. - person Bryan Pendleton; 26.02.2010
comment
Я использовал org.hibernate.dialect.DerbyDialect для генерации hbm2ddl. Эта вышеописанная проблема делает последнюю версию Apache Derby непригодной для использования с Hibernate 3.3.x. Я задам этот вопрос также в hibernate форуме. - person Joe; 12.03.2010
comment
Джошуа, пожалуйста, дайте нам знать, что вы узнали от сообщества Hibernate. Между тем, в DERBY-789 был достигнут некоторый прогресс, поэтому, если вы можете включить экспериментальные исправления Derby в свою среду разработки, было бы интересно получить отзыв о том, движется ли исправление в правильном направлении. - person Bryan Pendleton; 12.03.2010
comment
Сейчас у нас нет возможности опробовать экспериментальные изменения, и я еще ничего не слышал от сообщества спящего режима по этому вопросу. - person Joe; 19.03.2010