Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запретить пустые и null значения для enum в БД?(hibernate) / 19 сообщений из 19, страница 1 из 1
04.11.2014, 13:45
    #38795146
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
Есть Сущность. одно из его полей это enum.

enum может принимать значения VAL1 и VAL2.

Надо сделать так чтобы в базе данных в соответствующем столбце нельзя было ничего написать(даже если явно полезть в базу не через приложение) кроме VAL1 и VAL2.
Hibernate умеет так делать?
...
Рейтинг: 0 / 0
04.11.2014, 13:54
    #38795154
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questionerдаже если явно полезть в базу не через приложение
Каким боком хибернейт тут может помочь? Ограничение надо ставить на уровне БД
...
Рейтинг: 0 / 0
04.11.2014, 13:56
    #38795155
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
забыл ник,

hbm2ddl.auto=update

unique например hibernate умеет делать
...
Рейтинг: 0 / 0
04.11.2014, 13:56
    #38795156
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questionerЕсть Сущность. одно из его полей это enum.

enum может принимать значения VAL1 и VAL2.

Надо сделать так чтобы в базе данных в соответствующем столбце нельзя было ничего написать(даже если явно полезть в базу не через приложение) кроме VAL1 и VAL2.
Hibernate умеет так делать?

А при чем здесь Hibernate?
Тут надо на самой базе constraint делать.
:-)
...
Рейтинг: 0 / 0
04.11.2014, 14:04
    #38795164
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
mad_nazgul,

http://stackoverflow.com/a/4546164/2674303

а на базе это как сделать?
...
Рейтинг: 0 / 0
04.11.2014, 14:46
    #38795202
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questionermad_nazgul,

http://stackoverflow.com/a/4546164/2674303

а на базе это как сделать?

Зависит от БД.
Но обычно пишется ХП, которая вешается на BEFORE INSERT и BEFORE UPDATE
В ней проверяется и если что делается EXECPTION
...
Рейтинг: 0 / 0
04.11.2014, 15:02
    #38795222
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
mad_nazgul,

как-то не очень мне это нравится решение, если честно.


Это даже наверное на триггер больше похоже, чем на хранимку.
...
Рейтинг: 0 / 0
04.11.2014, 15:04
    #38795225
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questionerзабыл ник,

hbm2ddl.auto=update

unique например hibernate умеет делать

И? Даже несмотря на то, что использовать автогенерацию на продакшене зло, что мешает после генерации исполнить свой скрипт и доделать нужные констрейнты через sql? Как эмулировать енум - вариантов море, некоторые как mysql поддерживают такой тип, в других можно сделать констрейнт, или сделать через foreign key таблицу со всеми возможными вариантам значений
...
Рейтинг: 0 / 0
04.11.2014, 15:38
    #38795260
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
забыл никquestionerзабыл ник,

hbm2ddl.auto=update

unique например hibernate умеет делать

И? Даже несмотря на то, что использовать автогенерацию на продакшене зло, что мешает после генерации исполнить свой скрипт и доделать нужные констрейнты через sql? Как эмулировать енум - вариантов море, некоторые как mysql поддерживают такой тип, в других можно сделать констрейнт, или сделать через foreign key таблицу со всеми возможными вариантам значений

всмысле и?

Если он умеет какие-то ограничения в базу прокидывать почему бы не предположить, что он и другие может?
...
Рейтинг: 0 / 0
04.11.2014, 15:56
    #38795286
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questioner,
тогда расшифруй
авторнельзя было ничего написать(даже если явно полезть в базу не через приложение)
без фраз "домохозяек пролезть".
ЗЫ
в хибере тоже есть триггер
...
Рейтинг: 0 / 0
04.11.2014, 16:04
    #38795298
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
Хибернейт не является инструментом для решения архитектурных вопросов.
Курите доки по целевой DBMS которую используете. Там - все ответы.
...
Рейтинг: 0 / 0
04.11.2014, 16:37
    #38795320
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questionerвсмысле и?

Если он умеет какие-то ограничения в базу прокидывать почему бы не предположить, что он и другие может?

Я тебе первым постом сказал, что такие ограничения ставятся на уровне ДБ. После этого ты стал залупаться, а сейчас еще и хамить. Хибернейт нкапсулирует только базовые вещи, которые стандартизованы или поддерживаются почти всеми базами, enum констрейнт в их число не входит по очевидным причинам.
...
Рейтинг: 0 / 0
04.11.2014, 16:45
    #38795328
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questioner,

То, что ты хочешь - называется check constraint. Умеет практически любая вменяемая СУБД. Реализуется, как уже сказали, средствами СУБД.
...
Рейтинг: 0 / 0
04.11.2014, 17:35
    #38795393
smackmychi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
Petro123, определить UserType и nullable = false?
...
Рейтинг: 0 / 0
04.11.2014, 17:55
    #38795414
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
Petro123questioner,
тогда расшифруй
авторнельзя было ничего написать(даже если явно полезть в базу не через приложение)
без фраз "домохозяек пролезть".
ЗЫ
в хибере тоже есть триггер

пролезть = открыть командную строку СУБД и написать там команды типа update, delete, unsert.

Хм. надо про триггеры в хибере почитать.
...
Рейтинг: 0 / 0
04.11.2014, 17:57
    #38795415
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
забыл никЯ тебе первым постом сказал, что такие ограничения ставятся на уровне ДБ. После этого ты стал залупаться, а сейчас еще и хамить.
Не знаю почему тебе так показалось, но ничего такого я не делал.
...
Рейтинг: 0 / 0
05.11.2014, 07:54
    #38795745
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questioner,
Если "пролез", тогда причем хибер?
...
Рейтинг: 0 / 0
05.11.2014, 11:00
    #38795907
questioner
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
Пока что не все юзкейзы работают и соответсвенно что то проверяют изменением значений напрямую в базе. Ну и заметили, что можно в это поле написать пустоту.
...
Рейтинг: 0 / 0
05.11.2014, 12:02
    #38796000
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как запретить пустые и null значения для enum в БД?(hibernate)
questionerПока что не все юзкейзы работают и соответсвенно что то проверяют изменением значений напрямую в базе. Ну и заметили, что можно в это поле написать пустоту.
защита от админов и программистов призрачна).
Защищайте БД заказчика.
Надеюсь там они не лазят)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как запретить пустые и null значения для enum в БД?(hibernate) / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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