私はDAOの数百万の例を見てきました。ほとんどの場合、リストを返すいくつかのメソッド(例:List getCustomers())を使用して、単一エンティティの基本CRUD操作を実装しています。複数のエンティティを更新するメソッドは、通常DAOの一部ではありませんか?
しかし、void update(List)のように複数のエンティティを更新、削除、または作成するメソッドがある例は見たことがありません。
複数のエンティティを更新するメソッドは、通常はDAOの一部ではないか、あまり例ではあまり使用されませんか?私はいくつかのバッチを挿入する必要があり、myDAO.create()を100回呼び出すことは非常に効率的ではないという要件を持っています。
私は先に進む前に何かを見逃していないことを確認したいと思います。
ええと、それは私のDAOには、適切なバッチ更新を実装できるようにリストを取ることができるメソッドを持っている必要があるようです。私はまだ私のサービス方法でバッチを分割して、それをすべて同じトランザクションの下で実行させることができますか? – Boden
いいえ、私はDAOがまだ単一のオブジェクトインスタンスを取ることを提案しており、サービスはループ内でDAOを呼び出します(または、あなたが "チャンク"している場合はループします)。サービス方法は、トランザクションを所有する単一の作業単位になります。サービスはまた、トランザクションをバッチしてネットワークトラフィックを削減することもあります。 – duffymo
どうしたらうまくいくのですか?たとえば、Jdbcを使用していた場合、サービスではexecuteBatchを使用できなくなります...基本的には定期的に更新が行われます。 – Boden