Size: a a a

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

2020 October 12

SL

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

JB

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

SL

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

SL

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

JB

Joe Beretta in TypeORM - Русскоязычное сообщество
удачи тогда в багфиксе)
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
S. L.
я уже думаю, может мне не делать это через ивент, а сделать последовательно?
ну если там какая-то сложная логика присутствует то иначе и не получится. открывай транзакцию и вперёд… если внутри транзакции нужны репозитории – не забывай получить отдельные инстансы с транзакционного менеджера…
источник
2020 October 13

SL

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

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ничем, за иключением того что декоратор по-моему не будет правильно работать в несте. хотя на 100% не уверен. но вообще по-моему через декоратор неудобно – не хватает контроля…
источник

КБ

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

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
если создаёшь свой репозиторий, а в кастомных методах пытаешься запускать транзакции, лучше учесть сразу что этот метод может быть вызван в уже открытой транзакции – имитировать вложенные транзакции typeorm не пытается, и там получается нужна небольшая пляска с бубном:

public async doGoodThings(...args) {
 if (this.manager.queryRunner?.isTransactionActive) {
   return this.reallyDoGoodThings(...args);
 } else {
   return this.manager.transaction(manager =>
     manager.getCustomRepository(this.constructor)
       .reallyDoGoodThings(...args)
   );
 }
}

private async reallyDoGoodThings() { ... }
источник

SL

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

SL

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

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
для одного апдейта-то зачем? апдейты в sql-базах и так атомарны…
источник

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
ну и к слову – в данном примере как раз инъектируется нетранзакционный репозиторий. если делать на RequestsChunk апдейт в транзакции то внутри колбэка надо будет на транзакционном менеджере сделать manager.getRepository(RequestsChunk) и работать именно с ним… на том что в конструкторе инъектировался запросы будут лететь мимо транзакции на другом подключении к базе…
источник
2020 October 20

SL

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

И

Игорь in TypeORM - Русскоязычное сообщество
Товарищи, подскажите пожалуйста, кто работал с тайп орм, есть ли какой-то способ узнать откуда взяла тайп орм ответ при гет запросе с помощью кеширования : из редиса или бд?
источник
2020 October 21

SL

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

КБ

Константин Брызгалин... in TypeORM - Русскоязычное сообщество
S. L.
Всем привет, как можно запустить typeorm транзакцию для разных репозиториев сразу? Т.е. мне нужно знать, что изменения внесутся сразу в две таблицы
надо открыть через менеджер транзакцию, в колбэке на транзакционном менеджере уже сделать .getRepository/.getCustomRepository – и выполнить действие на транзакционных репозиториях – запросы выполнятся в одной транзакции…

дело в том что стандартные репозитории – очень тонкие обёртки над менеджером. и те репозитории которые создаёт транзакционный менеджер – они привязаны к транзакции…

естественно если в кастомном репозитории делать какие-то сложные вещи, обращаться к другим репозиториям – надо быть внимательным, чтобы использовать локальные .find/.save/.remove и брать репозитории через this.manager – чтобы не «выпасть» из транзакции… если в методе кастомного репозитория надо открыть транзакцию, надо обязательно проверять что она ещё не открыта (вложенные транзакции не поддерживаются и не имитируются)…
источник

S

Sergey in TypeORM - Русскоязычное сообщество
Привет, тут есть люди которые знают как работает cls-hooked и
typeorm-transactional-cls-hooked?)
источник
2020 October 29

LC

Lapis Cursed in TypeORM - Русскоязычное сообщество
Есть тут кто?
источник