これは少し平凡に聞こえるかもしれませんが、DAO が状態情報、つまり非静的非最終メンバー変数を格納すべきではないという良い慣行があるかどうか誰か教えてもらえますか? 私が遭遇したほとんどのDAOには、主に静的変数と最終変数のみが含まれています。
public class CustomerDAO extends CommonDAO{
private String txnid;
private String txnName;
getters....setters..
}
これは少し平凡に聞こえるかもしれませんが、DAO が状態情報、つまり非静的非最終メンバー変数を格納すべきではないという良い慣行があるかどうか誰か教えてもらえますか? 私が遭遇したほとんどのDAOには、主に静的変数と最終変数のみが含まれています。
public class CustomerDAO extends CommonDAO{
private String txnid;
private String txnName;
getters....setters..
}
私にとって、DAO は「単なるパイプ」であり、データベース通信をカプセル化するために作られています。クエリを構築して実行するか、または をプロキシしますEntityManager
。そのため、少なくとも JPA の場合、EntityManager
インスタンスを除いて状態は必要ありません。クエリは互いに直接依存しません。
だから私は質問を逆にします.DAOはどのような賢明な状態を持つことができますか?
これには強く反対します。DAO が存在する理由は、ステートレスな範囲の DB アクセス方法を提供することです。コードを読んでいるほとんどの開発者は、状態を見つけて非常に驚くでしょう。
また、あなたが示している状態はスレッドセーフではありません.そのようなことをすると、正しい混乱に陥る可能性があります.