https://github.com/if1live/typeorm-entity-proxy-for-save
typeorm entity proxy for save
https://github.com/if1live/typeorm-entity-proxy-for-save
Last synced: 2 months ago
JSON representation
typeorm entity proxy for save
- Host: GitHub
- URL: https://github.com/if1live/typeorm-entity-proxy-for-save
- Owner: if1live
- Created: 2020-07-10T14:38:23.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2022-03-27T03:33:19.000Z (about 3 years ago)
- Last Synced: 2025-02-02T18:14:37.782Z (4 months ago)
- Language: TypeScript
- Size: 130 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# typeorm entity proxy for save
use `repository.save(entity)` with 1 UPDATE query
## repository.save()
```ts
async function fn_save(conn: Connection, user: UserEntity) {
const repo = conn.manager.getRepository(UserEntity);
user.data = 'save';
await repo.save(user, { transaction: false });
}
```query
```
query: SELECT "UserEntity"."key1" AS "UserEntity_key1", "UserEntity"."key2" AS "UserEntity_key2", "UserEntity"."data" AS "UserEntity_data" FROM "user_entity" "UserEntity" WHERE "UserEntity"."key1" = ? AND "UserEntity"."key2" = ? -- PARAMETERS: ["foo","bar"]
query: UPDATE "user_entity" SET "data" = ? WHERE "key1" = ? AND "key2" = ? -- PARAMETERS: ["save","foo","bar"]
```* pros: simple
* cons: 1 SELECT + 1 UPDATE## repository.update()
```ts
async function fn_update(conn: Connection, user: UserEntity) {
const repo = conn.manager.getRepository(UserEntity);
await repo.update({
key1: user.key1,
key2: user.key2,
}, {
data: 'update',
});
}
```query
```
query: UPDATE "user_entity" SET "data" = ? WHERE "key1" = ? AND "key2" = ? -- PARAMETERS: ["update","foo","bar"]
```* pros: 1 UPDATE
* cons: complex## entity proxy and custom repository
```ts
@EntityRepository(UserEntity)
class UserRepository extends MyRepository { }async function fn_custom(conn: Connection, ent: UserEntity) {
const repo = conn.manager.getCustomRepository(UserRepository)
const user = EntityProxy.create(ent);
user.data = 'custom';
await repo.customSave(user);
}
```query
```
query: UPDATE "user_entity" SET "data" = ? WHERE "key1" = ? AND "key2" = ? -- PARAMETERS: ["custom","foo","bar"]
```* 1 UPDATE and simple
## run sample
```sh
npm i
npm run start
```