Posted at

【SpringData Jpa の導入方法】

More than 1 year has passed since last update.

①pom.xmlにタグを追加する。

<!-- SpringBootでDataJpaを使用できる様にする設定 -->

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

②Entityクラスを作る。

[must]@Entityをつける.これによって、Entityクラスである事を示す

[must]@Tableをつける.nameはDBのテーブルの名前.

    省略した場合は、クラス名を大文字にした名前のテーブルにMappingされる

[must]PRIMARY KEY の付いているカラムに@Idを付ける.@Idが無いと機能しない.

無い場合はDBにPRIMARY KEYを付けるか、

@GeneratedValue(strategy = GenerationType.IDENTITY) を付ける。これを付ければ、PRIMARY KEYを生成できる。

DBが複合キーとなっている場合は、@javax.persistence.EmbeddedIdを使用する

[must]@Columnを付け、Mappingさせるカラム名を指定する.

    省略した場合はプロパティ名を大文字にした名前のカラムへMappingされる.

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.Id;

import javax.persistence.Table;

//Entityクラス = DBのtable

@Entity

@Table(name = "player")

public class Player {

@Id

@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
@Column(name = "nationality")
private String nationality;

//以下Getter Setter

③リポジトリを作成する.

いつものクラスでなく、インターフェースで作る.

[must]クラス名の後に、以下を追記する.

                ⬇     ︎

extends JpaRepository<Player, Integer>

import org.springframework.data.jpa.repository.JpaRepository;

import jp.co.rakus.football.entity.Player;

//JpaRepositoryを継承する事で、fineOne、findAll、save、deleteの4メソッドが使用

//ジェネリックスはエンティティのクラス名と、主キーの型を指定する.

public interface PlayerRepository_DataJpa extends JpaRepository {

}

④準備できたので、後はサービスやコントローラーで使用する

@Service

@EnableTransactionManagement

public class PlayerService {

@Autowired

PlayerRepository_DataJpa playerRepository_DataJpa;

public List<Player> findAll() {
return playerRepository_DataJpa.findAll();
}

public void saveUserInfo(User user) {
userRepositoryDataJpa.save(user);
}

}