Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

複数のリポジトリで同じトランザクションを使うようにする #121

Open
eigoninaritai-naokichi opened this issue May 21, 2024 · 0 comments
Assignees
Milestone

Comments

@eigoninaritai-naokichi
Copy link
Member

背景

本プロジェクトはリポジトリパターンを採用している。
現在、各リポジトリでは常に新しいPostgresクライアントを生成している。
そのため、リポジトリ間で同じトランザクションを使えない。

目的

複数のリポジトリで同じトランザクションを使うようにする。

修正案

  • TransactionManagerというクラスを作成し、このクラスからPostgresクライアントを取得できるようにする
  • リポジトリを使用するクラスでTransactionManagerを使用する
  • TransactionManagerのexecuteメソッドに使用するリポジトリのメソッド呼び出しの処理を入れる
  • リポジトリのメソッド呼び出しの処理では複数のリポジトリの呼び出しを行うことができる
  • これまでのリポジトリの各メソッドにはデータベースクライアントを渡すようにする
  • Postgresクライアントをそのままリポジトリに渡してしまうとテストを容易にできなくなるため、ITransactionClientというインターフェースに抽象化し、このインターフェースを使うようにする
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant