Help us understand the problem. What is going on with this article?

【Spring Data Jpa のやり方】

More than 1 year has passed since last update.

①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);
    }
}
Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away