Mybatis / JPA 차이

JPA

  • 페이징하기 쉬운 라이브러리가 있음 Pageable?

  • CRUD 쿼리 안짜도됨 간편함 - 레파지토리 구현 간편

    • 복잡한 쿼리도 자바코드로 짤수있는 라이브러리도 있음

//이런식으로 JpaRepository 상속받음
public interface BoardContentRepository extends JpaRepository<BoardContentEntity, Long>
//CrudRepository 상속, JpaRepository랑 무슨 차이지?
//@Query 로 간단하게 mybatis 마냥 쿼리도 짤수있음
public interface WpUserRepository extends CrudRepository<WpUserEntity, Long> {

@Query(nativeQuery = true,value = USER_QUERY
			+ " from wp_users a where user_login = :email or user_email = :email")
	public WpUserEntity findByEmail(@Param("email") String email);
  • 테이블을 객체로 만들기위해 중요한 클래스 Entity 임

    • 테이블 컬럼 그대로 구현해야됨

    • 보통 repository.entity 아래에 만듬

    • 다대다 일대다 이런 관계형 데이터베이스 관계를 구현해줄수있음 어노테이션으로

//WpUserEntity안에 구현된 WpUserMetaEntity (일대다)
//JoinColumn 은 조인하는 컬럼 WpUserMetaEntity의 컬럼을 적어야함
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "user_id")
private List<WpUserMetaEntity> wpUserMetaEntitys = new ArrayList<>();

Last updated