Size: a a a

TypeORM - Русскоязычное сообщество

2020 October 08

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ребят, а можно в typeorm сделать тип такого апдета?
По-моему UPDATE … SELECT лучше делать сырым sql - entityManager.query() и погнали
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
Tony
Примерно вот так выглядит решение
  default: () => "CURRENT_TIMESTAMP + interval '1 year'"
Возможно кому-то пригодиться
Не только в этом случае - функции возвращающие строки – это и есть raw sql по-TypeORMски. Такое и в запросах тоже поддерживается.
источник
2020 October 12

SL

S. L. in TypeORM - Русскоязычное сообщество
всем привет, typeorm поддерживает ивент в бд? У меня такой таск - одна таблица связана со второй связью многие-к-одному, во второй таблице происходит изменения и я хочу изменить все записи из первой таблицы по ключевому полю в этот момент
источник

JB

Joe Beretta in TypeORM - Русскоязычное сообщество
S. L.
всем привет, typeorm поддерживает ивент в бд? У меня такой таск - одна таблица связана со второй связью многие-к-одному, во второй таблице происходит изменения и я хочу изменить все записи из первой таблицы по ключевому полю в этот момент
У них есть поддержка триггеров
источник

JB

Joe Beretta in TypeORM - Русскоязычное сообщество
S. L.
всем привет, typeorm поддерживает ивент в бд? У меня такой таск - одна таблица связана со второй связью многие-к-одному, во второй таблице происходит изменения и я хочу изменить все записи из первой таблицы по ключевому полю в этот момент
Посмотри в доке. Например @BeforeInsert()
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
имейте в виду, @BeforeInsert работает только для repository.save(). на repository.insert()/entityManager.insert() оно не срабатывает – там вставка идёт напрямую sql-запросом в обход логики подписок…
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
тут кстати по идее напрашивается использование AfterInsert/AfterUpdate/AfterDelete, но я бы по-возможности вообще решал на уровне FOREIGN KEY – если там просто надо в поле NULL загнать например, или связанную запись удалить…
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
@BeforeUpdate будет работать для любых операций апдейтов?
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
можно ли как-то настроить что бы ивент срабатывал только при обновлении конкретного поля сущности?
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
аналогично – только для save()
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
по полям не настраивается – там же просто срабатывает save, а он уже смотрит что он делает insert или update и в зависимости от этого триггерит все подписки
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ещё remove триггерит before delete/after delete а .delete() не триггерит ничего 🙂
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
Константин Брызгалин
тут кстати по идее напрашивается использование AfterInsert/AfterUpdate/AfterDelete, но я бы по-возможности вообще решал на уровне FOREIGN KEY – если там просто надо в поле NULL загнать например, или связанную запись удалить…
в каком смысле "на уровне foreign key"? мне по сути и нужно обновить записи в другой таблицы по foreign key в момент обновления этой
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ну у foreign key ограниченные возможности реакций – on delete cascade и on delete set null по сути основное…
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
я уже думаю, может мне не делать это через ивент, а сделать последовательно?
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
т.е. сначала я обновляю запись в одной таблице, а потом обновляю все по тому же ключу в другой
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
в две операции
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
Переслано от S. L.
с чем может быть проблема? Через пг админ этот запрос спокойно выполняется
источник

JB

Joe Beretta in TypeORM - Русскоязычное сообщество
S. L.
Переслано от S. L.
с чем может быть проблема? Через пг админ этот запрос спокойно выполняется
в гугле что-то говорят по этому вопросу?
источник

SL

S. L. in TypeORM - Русскоязычное сообщество
Joe Beretta
в гугле что-то говорят по этому вопросу?
пишут, что нужно явно задать к какому полю я ссылаюсь
источник