javaには触れた経験がありましたが、
フレームワークが盛り込まれたソースコードを見た時に
\(^o^)/<「なにこれー」となり、立ち止まる事が多かったのでメモ書き程度に。
Spring Data JPA とはなんぞや
Javaで言うところの、DAO(Data Access Object)にあたるものが
Spring では、Repositoryクラスと呼ばれています。
※なぜそう呼ばれているのかは本稿では触れません
そのRepositoryクラスを便利に(お手軽に)使えるようにするものが
Spring Data JPAというライブラリなのです。
Spring Data JPA 使用例
早速ですが、以下のコードは「社員名を取得する」ためのコードです。
EmployeeRepository.java
@Service("employeeService")
public class EmployeeServiceImpl implements EmployeeService{
@Autowired
EmployeeRepository employeeRepository;
public Employee getName(String name) {
return Employee employee = employeeRepository.findByName(name);
}
}
そして、以下の簡素なコードでデータベースから社員名を取得してくる事が可能です。
PureJavaしか知らなかった私からすると、「えっ?これだけ?」と思いました。
EmployeeRepository.java
@Repository("EmployeeRepository")
public interface EmployeeRepository extends JpaRepository<Employee, String>{
public Employee findByName(String Name);
}
上記のRepositoryクラスでは、以下の手順が行われています。
「Employeeテーブルから、nameというフィールドで指定した文字列に完全一致するものを取得する。」
使い方のまとめ
簡単にまとめますと、
・検索したいフィールド名の最初を大文字にする
・findBy~などの特定のフォーマットに合わせてメソッドを定義する
漏らさずにやるのはこの2点だけで、後の処理はライブラリであるJPAが自動で実装してくれるのです!
ひとまず、データベースアクセスを試してみたい!という方は要検証です。
あとがき
本来、書き方はドキュメントを見てもらえればわかるはずなのですが
専門的な見た事も無い単語が並び、学び始めたばかりの方にはハードルの高いドキュメントです。
フレームワークに精通した者のみが読めるものだと感じました。
正確に納得しながら読むには、単語の意味を調べながらになるので数カ月は必要でしょう。