17
22

More than 5 years have passed since last update.

【Spring Data Jpa のやり方】

Last updated at Posted at 2017-10-18

①POM.XMLにタグを追加する。

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される.

Entity.class
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

Repository.class
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<Player, Integer> {

//Sqlを書きたい場合はこの様にして書く事ができる.
//書かないでも元々用意してあるメソッドは使える.
@Query("select u from User u where u.email = :email")
User findByCustomerEmail(@Param("email")String email);

}

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

Service.class
@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);
    }
}
17
22
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
17
22