【プログラミング】【java】JPAについて - j-komatsu/myCheatSheet GitHub Wiki

JPA(Java Persistence API)開発について

1. JPAとは?(初学者向け)

JPAの概要

JPA(Java Persistence API)は、Javaアプリケーションでデータベースを扱うための仕様です。ORM(Object-Relational Mapping)技術を用いて、Javaのオブジェクトとデータベースのレコードをマッピングします。

主な特徴

特徴 説明
ORMを採用 Javaオブジェクトとデータベーステーブルのマッピングが可能
標準API JPAはJava EEの標準仕様であり、HibernateやEclipseLinkなどの実装がある
SQLを意識しない エンティティを利用して、SQLの記述なしでデータ操作が可能

3.2 関連のマッピング

【例】OneToMany

@Entity
public class Department {
    @Id @GeneratedValue
    private Long id;
@OneToMany(mappedBy = "department")
private List<Employee> employees;

}

@Entity
public class Employee {
    @Id @GeneratedValue
    private Long id;
    
    @ManyToOne
    @JoinColumn(name = "department_id")
    private Department department;
}

3.3 JPQLとネイティブクエリ

【例】JPQLを使ったクエリ

@Query("SELECT u FROM User u WHERE u.name = :name")
List<User> findByName(@Param("name") String name);

【例】ネイティブクエリ

@Query(value = "SELECT * FROM users WHERE email = ?1", nativeQuery = true)
User findByEmail(String email);

3.4 トランザクション管理

@Transactional
public void updateUser(Long id, String name) {
    User user = userRepository.findById(id).orElseThrow();
    user.setName(name);
    userRepository.save(user);
}

4. まとめ

JPAを利用すると、データベース操作を簡潔に記述でき、ORMを活用することで保守性の高いコードを実装できます。Spring Bootと組み合わせることで、より効率的な開発が可能になります。

⚠️ **GitHub.com Fallback** ⚠️