1.JpaRepository<T, ID>
2.T : Table과 연결된 Entity
3.ID : Entity 내 PK(ID)의 자료형
JPA : NO SQL,개발의 편리함을 위해 sql문을 쓰지 않겠다.
1) 메소드 이름 규칙을 이용한 구현
findBy : ~에 의해서 찾아오겠다.,카멜기법
ex)public Tbl_Member findByEmailAndPw(String email, String pw);
2) @Query 어노테이션을 이용해서 직접 SQL문을 작성하는 방법
복잡한 쿼리문 작성하기 힘듦(자바로 작성을하니까 스페이스바를 할수없음)
(join,서브쿼리등) 복잡한것을 만들면 JPA단일보단 MyBatis를 겸용하는 경우가 많음
ex)
@Query("select * from tbl_member where email = :email and pw = :pw")
public Tbl_Member login(String email, String pw);
(Tbl_Member)로 묶으면 인식 못함
mybatis : sql문과 자바코드를 분리해서 편하게 쓴다
@ManyToOne //다대1방식
@JoinColumn(referencedColumnName = "email")
private Tbl_Member writer;
@Repository
public interface MemberRepository extends JpaRepository<Tbl_Member, String>{
public Tbl_Member findByEmailAndPw(String email, String pw);
@ManyToOne :
@OneToMany(mappedBy = "writer")
private List<Tbl_Board> board;
@Repository
public interface BoardRepository extends JpaRepository<Tbl_Board, Long>{
public List<Tbl_Board> findByWriter_Email(String writer);
}
@OneToMany :