JPA with Springboot, Entity mapping 데이터 조회 방법
JPA with Springboot, Entity mapping 데이터 조회 방법
이전 포스팅에서 JPA 설정 방법을 알아보았습니다.
Link : aljjabaegi.tistory.com/561
Database의 테이블과 Java Entity Class를 매핑하는 방법을 알아보겠습니다.
class를 생성하기 전에 테스트를 진행할 테이블의 정보를 확인해보도록 하죠.
m_op_member 테이블에 MEMBER_ID를 Key 값으로 하는 컬럼들이 있습니다.
이제 이 테이블을 기초로 하는 Entity 클래스를 생성하겠습니다.
base package > model > entities package에 Member.class를 생성합니다.
[Member.class]
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.Data;
@Entity
@Table(name="M_OP_MEMBER")
@Data
public class Member {
@Id
@Column(name="MEMBER_ID", length=20)
private String id;
@Column(name="MEMBER_NAME", length=50)
private String name;
@Column(name="PASSWORD")
private String password;
@Column(name="ROLES", length=10)
private String roles;
@Column(name="USE_YN", length=1)
private String useYn;
@Column(name="REG_DTM", length=20)
private String regDtm;
}
Entity annotation으로 Entity임을 설정하고, Table annotation에 name으로 테이블명을 연결합니다.
Id annotation은 테이블의 키값을 의미하며, Entity 객체 내에는 항상 존재해야 합니다.
변수명도 id로 사용해야 합니다.
Column annotation으로 컬럼명과 길이를 설정해주세요.
이제 데이터를 조회하기 위한 Repository와 Service를 생성합니다.
base package > repositoy package에 MemberRepository interface를 생성합니다.
[MemberRepository Interface]
@Repository
public interface MemberRepository extends JpaRepository<Member, String>{
}
JpaRepository를 상속만 받으시면 됩니다.
[MemberListServiceImpl Interface]
public interface MemberListServiceImpl {
List<Member> getMemberList() throws Exception;
}
[MemberListService class]
@Service("memberService")
public class MemberListService implements MemberListServiceImpl{
@Autowired
private MemberRepository repo;
@Override
public List<Member> getMemberList() throws Exception {
return (List<Member>) repo.findAll();
}
}
컨트롤러에 대한 설명은 제외하겠습니다.
저의 경우 /test.json 경로로 post 요청에 대해 위의 Service 로직을 실행하게 구현하였습니다.
이제 Postman을 활용하여 데이터를 요청해보겠습니다.
데이터가 리턴되는 것을 확인하실 수 있습니다.
다음 포스팅에서는 그리드에 표출하기위한 paging 과 sorting, parameter를 전달하는
방법에 대해 알아보도록 하겠습니다.
Link : aljjabaegi.tistory.com/563
Link : aljjabaegi.tistory.com/564