WEB

[spring]Spring Data JPAを使ってみよう

WEB
この記事は約3分で読めます。

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が自動で実装してくれるのです!
ひとまず、データベースアクセスを試してみたい!という方は要検証です。

あとがき

本来、書き方はドキュメントを見てもらえればわかるはずなのですが
専門的な見た事も無い単語が並び、学び始めたばかりの方にはハードルの高いドキュメントです。
フレームワークに精通した者のみが読めるものだと感じました。
正確に納得しながら読むには、単語の意味を調べながらになるので数カ月は必要でしょう。