powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, many-to-one, вопрос про поле notnull
1 сообщений из 1, страница 1 из 1
Hibernate, many-to-one, вопрос про поле notnull
    #38637258
mr.Jack
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте,
Все работает так:
Допустим, есть таблицы Role, User:
Role
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE IF NOT EXISTS `avarenadb`.`ROLE` (
  `ID` BIGINT NOT NULL AUTO_INCREMENT,
  `ROLE_NAME` VARCHAR(45) NOT NULL,
  PRIMARY KEY (`ID`))
ENGINE = InnoDB


User
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE IF NOT EXISTS `avarenadb`.`USER` (
  `ID` BIGINT NOT NULL AUTO_INCREMENT,
  `LOGIN` VARCHAR(45) NOT NULL,
  `PASSWORD` VARCHAR(45) NOT NULL,
  `ROLE_ID` BIGINT NULL,
  PRIMARY KEY (`ID`),
  INDEX `fk_USER_ROLE1_idx` (`ROLE_ID` ASC),
  CONSTRAINT `fk_USER_ROLE1`
    FOREIGN KEY (`ROLE_ID`)
    REFERENCES `avarenadb`.`ROLE` (`ID`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB



Как вы видите, в таблице User поле ROLE_ID может быть NULL:
автор `ROLE_ID` BIGINT NULL,

Все работает, сохраняется.
Но, по сути, пользователь не может не иметь роли. Однако, таблица в текущем ее состоянии подразумевает, что пользователь без роли может быть создан. Если делать
автор `ROLE_ID` BIGINT NOT NULL,
то будет Column 'ROLE_ID' cannot be null .
В http://www.sql.ru/forum/1093199/neponyatnoe-povedenie-pri-saveorupdate-sqlexception-field-doesn-t-have-a-default-va товарищ Blazkowicz дал ответ на похожую ситуацию с one-to-one, однако, я просто сделал оба ключа в двух таблицах первичными с auto-increment.
Тут ситуация другая: делаю в hbm.xml not-null="true" и inverse="true", не помогает:
Код: sql
1.
2.
3.
4.
5.
6.
<set name="userCollection" inverse="true" cascade="save-update">
            <key>
                <column name="ROLE_ID" not-null="true" />
            </key>
            <one-to-many class="com.avarena.model.entity.User" />
        </set>
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate, many-to-one, вопрос про поле notnull
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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