LoginSignup
1
3

More than 5 years have passed since last update.

【SpringData Jpa の導入方法】

Posted at

①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);
}

}

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3