согласно документации здесь — https://orkan.gitbook.io/typeorm/docs/d ... /6-caching
это единственный случай, когда мы добавили кеширование, оно тоже работает нормально
Код: Выделить всё
async userByIdWithColumns(id: string, ReqColumns: string[] = []) {
const selectOptions = [
...defaultColumns,
...ReqColumns,
];
const foundOneOptions: FindOneOptions = {
where: { id },
select: selectOptions,
relations: {
role: true,
},
cache: {
id: `user-findone-${id}`,
milliseconds: 60 * 60 * 1000
}
};
return this.userRepository.findOne(foundOneOptions);
}
Код: Выделить всё
mysql> select id, duration, identifier from query_result_cache;
+----+----------+------------------------------------------------------------------+
| id | duration | identifier |
+----+----------+------------------------------------------------------------------+
| 20 | 3600000 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8-pagination |
| 21 | 3600000 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8 |
+----+----------+------------------------------------------------------------------+
2 rows in set (0.00 sec)
запросы кэшируются, но если я удаляю отношения, запись 34 не создается
Код: Выделить всё
mysql> select * from query_result_cache;
+----+--------------------------------------------------------------+---------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
| id | identifier | time | duration | query | result |
+----+--------------------------------------------------------------+---------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
| 34 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8-pagination | 1763454776805 | 3600000 | SELECT DISTINCT `distinctAlias`.`User_id` AS `ids_User_id` FROM (SELECT `User`.`id` AS `User_id`, `User__User_role`.`id` AS `User__User_role_id` FROM `user` `User` LEFT JOIN `roles` `User__User_role` ON `User__User_role`.`id`=`User`.`role_id` WHERE ((`User`.`id` = ?))) `distinctAlias` ORDER BY `User_id` ASC LIMIT 1 -- PARAMETERS: ["a0c66c98-cb9d-4f36-b5b9-b92411af74a8"] | [{"ids_User_id":"a0c66c98-cb9d-4f36-b5b9-b92411af74a8"}] |
| 35 | user-findone-a0c66c98-cb9d-4f36-b5b9-b92411af74a8 | 1763454776841 | 3600000 | SELECT `User`.`id` AS `User_id`, `User__User_role`.`id` AS `User__User_role_id` FROM `user` `User` LEFT JOIN `roles` `User__User_role` ON `User__User_role`.`id`=`User`.`role_id` WHERE ( ((`User`.`id` = ?)) ) AND ( `User`.`id` IN (?) ) -- PARAMETERS: ["a0c66c98-cb9d-4f36-b5b9-b92411af74a8","a0c66c98-cb9d-4f36-b5b9-b92411af74a8"] | [{"User_id":"a0c66c98-cb9d-4f36-b5b9-b92411af74a8","User__User_role_id":null}] |
+----+--------------------------------------------------------------+---------------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
Код: Выделить всё
"typeorm": "^0.3.22",
"@nestjs/typeorm": "^11.0.0",
"@nestjs/core": "^10.0.2",
"mysql2": "^3.14.0",
фактическое поведение — как упоминалось выше
почему typeorm добавляет суффикс нумерации страниц, если нумерации страниц нет?
теперь, в случае недействительности приведенного выше, нам придется аннулировать оба?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ion-suffix
Мобильная версия