169 похожих чатов

Всем привет. Вопрос следующий. Есть Entity, в которой я пропускаю

заполнение поля типа ZonedDateTime
В таблице есть constraint not null на это поле + default value = now().
Кажется, если значение поля в Ентити == налл, то должно вычислить дефолтное?
Как мне прийти к такому пути?

7 ответов

23 просмотра

можешь воспользоваться @UpdateTimestamp и @CreationTimestamp если эти поля твои нужны для сохранения подобной инфы (я сужу по твоему дефолтному now()). либо можешь воспользоваться @Column(… columnDefinition=“DATE not null constraint default now()”)

Дэни
можешь воспользоваться @UpdateTimestamp и @Creatio...

Дисклеймер: мои ответы должны быть адаптированы по месту применения

javabydeveloper.com/jpa-hibernate-default-column-values/

Alex-K. Автор вопроса
Дэни
javabydeveloper.com/jpa-hibernate-default-column-v...

Да, это конечно замечательно, но почему на стороне БД это не генерируется? Ведь цель - отдать на откуп СУБД, а не генерить дефолт при создании сущности, только при вставке, если она пройдёт успешно.

Alex K.
Да, это конечно замечательно, но почему на стороне...

когда гибернейт генерит квери, он явно перечисляет каждое поле по имени. и так как ты не подставил никакого значения в свои non null поля, то получается, что он явно передает null в поле, на котором висит констрейнт. и бд закономерно ругается, что нельзя вставлять нуллы в такие колонки. обычно при ручном инсерте ты бы просто не перечислял имя этой колонки, и бд бы увидела, что ты ничего не вставляешь сам, и сгенерировало бы дефолтное значение. полагаю именно поэтому гибернейту требуется помочь и дописать эту мета-инфу в энтити

Alex-K. Автор вопроса

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта