|
|
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
Есть Сущность. одно из его полей это enum. enum может принимать значения VAL1 и VAL2. Надо сделать так чтобы в базе данных в соответствующем столбце нельзя было ничего написать(даже если явно полезть в базу не через приложение) кроме VAL1 и VAL2. Hibernate умеет так делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 13:45 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questionerдаже если явно полезть в базу не через приложение Каким боком хибернейт тут может помочь? Ограничение надо ставить на уровне БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 13:54 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
забыл ник, hbm2ddl.auto=update unique например hibernate умеет делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 13:56 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questionerЕсть Сущность. одно из его полей это enum. enum может принимать значения VAL1 и VAL2. Надо сделать так чтобы в базе данных в соответствующем столбце нельзя было ничего написать(даже если явно полезть в базу не через приложение) кроме VAL1 и VAL2. Hibernate умеет так делать? А при чем здесь Hibernate? Тут надо на самой базе constraint делать. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 13:56 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 14:04 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questionermad_nazgul, http://stackoverflow.com/a/4546164/2674303 а на базе это как сделать? Зависит от БД. Но обычно пишется ХП, которая вешается на BEFORE INSERT и BEFORE UPDATE В ней проверяется и если что делается EXECPTION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 14:46 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, как-то не очень мне это нравится решение, если честно. Это даже наверное на триггер больше похоже, чем на хранимку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 15:02 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questionerзабыл ник, hbm2ddl.auto=update unique например hibernate умеет делать И? Даже несмотря на то, что использовать автогенерацию на продакшене зло, что мешает после генерации исполнить свой скрипт и доделать нужные констрейнты через sql? Как эмулировать енум - вариантов море, некоторые как mysql поддерживают такой тип, в других можно сделать констрейнт, или сделать через foreign key таблицу со всеми возможными вариантам значений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 15:04 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
забыл никquestionerзабыл ник, hbm2ddl.auto=update unique например hibernate умеет делать И? Даже несмотря на то, что использовать автогенерацию на продакшене зло, что мешает после генерации исполнить свой скрипт и доделать нужные констрейнты через sql? Как эмулировать енум - вариантов море, некоторые как mysql поддерживают такой тип, в других можно сделать констрейнт, или сделать через foreign key таблицу со всеми возможными вариантам значений всмысле и? Если он умеет какие-то ограничения в базу прокидывать почему бы не предположить, что он и другие может? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 15:38 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questioner, тогда расшифруй авторнельзя было ничего написать(даже если явно полезть в базу не через приложение) без фраз "домохозяек пролезть". ЗЫ в хибере тоже есть триггер ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 15:56 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
Хибернейт не является инструментом для решения архитектурных вопросов. Курите доки по целевой DBMS которую используете. Там - все ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 16:04 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questionerвсмысле и? Если он умеет какие-то ограничения в базу прокидывать почему бы не предположить, что он и другие может? Я тебе первым постом сказал, что такие ограничения ставятся на уровне ДБ. После этого ты стал залупаться, а сейчас еще и хамить. Хибернейт нкапсулирует только базовые вещи, которые стандартизованы или поддерживаются почти всеми базами, enum констрейнт в их число не входит по очевидным причинам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 16:37 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questioner, То, что ты хочешь - называется check constraint. Умеет практически любая вменяемая СУБД. Реализуется, как уже сказали, средствами СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 16:45 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
Petro123, определить UserType и nullable = false? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 17:35 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
Petro123questioner, тогда расшифруй авторнельзя было ничего написать(даже если явно полезть в базу не через приложение) без фраз "домохозяек пролезть". ЗЫ в хибере тоже есть триггер пролезть = открыть командную строку СУБД и написать там команды типа update, delete, unsert. Хм. надо про триггеры в хибере почитать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 17:55 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
забыл никЯ тебе первым постом сказал, что такие ограничения ставятся на уровне ДБ. После этого ты стал залупаться, а сейчас еще и хамить. Не знаю почему тебе так показалось, но ничего такого я не делал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2014, 17:57 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questioner, Если "пролез", тогда причем хибер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 07:54 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
Пока что не все юзкейзы работают и соответсвенно что то проверяют изменением значений напрямую в базе. Ну и заметили, что можно в это поле написать пустоту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 11:00 |
|
||
|
Как запретить пустые и null значения для enum в БД?(hibernate)
|
|||
|---|---|---|---|
|
#18+
questionerПока что не все юзкейзы работают и соответсвенно что то проверяют изменением значений напрямую в базе. Ну и заметили, что можно в это поле написать пустоту. защита от админов и программистов призрачна). Защищайте БД заказчика. Надеюсь там они не лазят) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2014, 12:02 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38795745&tid=2126328]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
185ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 555ms |

| 0 / 0 |
