powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate: Field 'fieldName' doesn't have a default value
2 сообщений из 2, страница 1 из 1
hibernate: Field 'fieldName' doesn't have a default value
    #39010837
K.D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,

Имею две таблицы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE IF NOT EXISTS `db`.`Task` (
  `id` BIGINT NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;

CREATE TABLE IF NOT EXISTS `db`.`TaskResult` (
  `id` BIGINT NOT NULL AUTO_INCREMENT,
  `task` BIGINT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `fk_TaskResult_Task1_idx` (`task` ASC),
  CONSTRAINT `fk_TaskResult_Task1`
    FOREIGN KEY (`task`)
    REFERENCES `db`.`Task` (`id`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COLLATE = utf8_general_ci;



Как видно, таблица TaskResult имеет поле `task` BIGINT NOT NULL, это поле представляет собой связь с таблицей Task.
Запись в таблице TaskResult не может существовать без записи в Task, по этому NOT NULL.
когда я пытаюсь сохранить TaskResult так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
...
Task task = (Task) s.get(Task.class, 1l);
if (null != task) {
    TaskResult result = new TaskResult();

    result.setTask(task);
    session.save(result);

    session.getTransaction().commit();
}
...



я получаю SQLException:
java.sql.SQLExceptionField 'task' doesn't have a default value


вопрос: почему? я же указал Task: result.setTask(task);
и второй вопрос: как мне все же выполнить сохранение правильно, без изменения типа поля с NOT NULL на DEFAULT NULL ?
...
Рейтинг: 0 / 0
hibernate: Field 'fieldName' doesn't have a default value
    #39012970
K.D.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема была в неправильной реализации one-to-one. Ответ здесь http://stackoverflow.com/questions/31547225/hibernate-two-many-one-to-one-relationship/31550935#31550935
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / hibernate: Field 'fieldName' doesn't have a default value
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]