java.sql.SQLException: не может вставить значение NULL в столбец - PullRequest
0 голосов
/ 23 июля 2011

Я делаю пример программы, используя этот учебник.http://www.vaannila.com/hibernate/hibernate-example/hibernate-mapping-many-to-one-1.html

Я столкнулся с ошибкой:

Caused by: java.sql.SQLException: 
Cannot insert the value NULL into column 'ADDRESS_ID', 
                                       table 'sample.dbo.Address'; 
column does not allow nulls. INSERT fails.

в строке:

session.save(student1);

в Main.java

в Адрес и Студенттаблиц, я использовал ADDRESS_ID, STUDENT_ID имеет тип int.

и в примере программы это было долго.поэтому я изменил тип int в соответствующих полях классов и в файлах hbm.

теперь он выдает ту же ошибку:

Caused by: java.sql.SQLException: Cannot insert the value NULL into column 'ADDRESS_ID', table 'sample.dbo.Address'; column does not allow nulls. INSERT fails.

Любая помощь будет принята с благодарностью!Спасибо

Ответы [ 3 ]

1 голос
/ 24 июля 2011

убедитесь, что address_id содержит действительный номер (указывающий на запись таблицы адресов для этого студента)

0 голосов
/ 24 июля 2011

ЭЙ ЧУВСТВИТЕЛЬНОСТЬ КАК МНОГО, КАК Я ЗНАЮ О HIBERNATE И ПОСЛЕ УВИДЕНИЯ ЭТОГО ПРИМЕРА И ФАЙЛА КАРТИНГА Я ПОЛУЧИЛ ТОЛЬКО ОДИН ЗАКЛЮЧЕНИЕ, КОТОРОЕ ВЫ УСТАНАВЛИВАЕТЕ АДРЕСНУЮ КОЛОННУ НЕ-НУЛЬ = ИСТИНА; ЭТО ТЫ НЕ ПОЗВОЛЯЕТ ТЫ ВСТАВИТЬ НУЛЬ. И еще одно, что касается гибернации, это то, что она позволит вам добавить только тот иностранный ключ, который представлен в качестве основного ключа в связанной таблице.

ЕСЛИ НУЛЬ НЕ ЯВЛЯЕТСЯ ПЕРВИЧНЫМ КЛЮЧОМ, ТОГО, ЧТОБЫ НЕ ДОБАВИТЬ, ВЫ ДОБАВЛЯЕТЕ ИНОСТРАННЫЙ КЛЮЧ ЗНАЧЕНИЯ НУЛЬ.

0 голосов
/ 23 июля 2011

Вы должны изменить столбец ADDRESS_ID в базе данных, чтобы принимать нулевые значения.

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