ブラウジング中に、汎用DAOインターフェースの次のコードを見つけました。
public interface GenericDAO<T, ID extends Serializable> {
Class<T> getEntityClass();
T findById(final ID id);
List<T> findAll();
List<T> findByExample(final T exampleInstance);
List<T> findByNamedQuery(
final String queryName,
Object... params
);
List<T> findByNamedQueryAndNamedParams(
final String queryName,
final Map<String, ?extends Object> params
);
int countAll();
int countByExample(final T exampleInstance);
T save(final T entity);
boolean delete(final T entity);
}
メソッドをデフォルトのアクセス修飾子 (クラス/パッケージ: はい、サブクラス/ワールド: いいえ) のままにする特別な理由はありますか?
PS: 追加の質問です。ID は通常、RDBMS (XML、フラット ファイルなど) に依存しない実装で見られますか?