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