У меня есть вопрос, который меня немного беспокоит.
Когда я использую @ElementCollection в моей сущности, спящий режим (3.5) создает мне таблицу без каких-либо ограничений.
Важное изменение
Моя сущность является подклассом другого класса. Возможно, это причина, по которой hibernate не генерирует pk и fk.
Изменить конец
public MyEntity extends BaseEntity
@ElementCollection(fetch=FetchType.EAGER)
private Set<String> test;
Заканчивается (postgres 9):
CREATE TABLE myentity_test
(
entityid bigint NOT NULL,
test character varying(255)
)
Это моя ошибка, что спящий режим не устанавливает никаких ограничений, таких как внешние ключи или уникальные индексы? Я мог бы установить его вручную, но я бы предпочел правильно аннотировать объект, чтобы спящий режим полностью (насколько это возможно) создавал мою базу данных.
С уважением, м
PS: Мой Плохой вообще. Спутал две вещи, которые крутились у меня в голове. я имел в виду @ElementCollection.
PS: @Column помог создать уникальный индекс. Изменить: исправил имена в моем примере.
CREATE TABLE myentity_test
(
entityid bigint NOT NULL,
test character varying(255),
CONSTRAINT itemequipable_test_test_key UNIQUE (test)
)
Я ожидал бы что-то вроде этого (псевдокод):
CREATE TABLE myentity_test
(
entityid bigint NOT NULL PRIMARY KEY,
test character varying(255) PRIMARY KEY,
CONSTRAINT fk_entityid references (myentity) on entityid
)
ALTER TABLE
, возможно, вы его пропустили. - person axtavt   schedule 10.02.2011