org.hibernate.exception.ConstraintViolationException - PullRequest
0 голосов
/ 14 августа 2011

Я делаю пример программы, используя эту ссылку у меня есть следующие таблицы в sqlserver:

`CREATE TABLE Student2(
STUDENT_ID int NOT NULL,
LastName varchar(255) NOT NULL,
STUDENT_NAME varchar(255),
STUDENT_ADDRESS int,
UNIQUE (STUDENT_ADDRESS))

CREATE TABLE Address2(
ADDRESS_ID int NOT NULL,
LastName varchar(255) NOT NULL,
ADDRESS_STREET varchar(255),
ADDRESS_CITY varchar(255),
ADDRESS_STATE varchar(255),
ADDRESS_ZIPCODE varchar(255))

У меня есть studentId тип int в Student.hbm.xml:

<id name="studentId" type="int" column="STUDENT_ID">
    <generator class="native" />
</id>

У меня есть addressId типа int в Address.hbm.xml:

<id name="addressId" type="int" column="ADDRESS_ID">
    <generator class="native" />
</id>

Мне грозит следующее исключение:

org.hibernate.exception.ConstraintViolationException: could not insert: [com.vaannila.student.Address]`
exception:`org.hibernate.exception.ConstraintViolationException: could not insert: [com.vaannila.student.Address]
Caused by: java.sql.SQLException: Cannot insert the value NULL into column 'ADDRESS_ID', table 'sample.dbo.Address2'; column does not allow nulls. INSERT fails.

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

1 Ответ

1 голос
/ 14 ноября 2011

ваши таблицы не имеют автоматически назначенного первичного ключа. фактически ваши таблицы создания вообще не определяют первичный ключ.

Вот пример для MySql по созданию таблицы с первичным ключом, который можно использовать с конфигурацией собственного генератора:

создать таблицу в формате asdf (первичный ключ pk auto_increment)

вы можете оставить свои таблицы и позволить Hibernate создавать их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...