1) pom.xml 추가 org.modelmapper modelmapper 2.3.8 2) ModelMapper 사용 UserEntity.java @Setter @Getter @Entity @Table(name = "users") public class UserEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long idx; @Column(nullable = false, length = 50) private String userId; @Column(nullable = false, length = 50) private String userName; } UserDto.java @Data public class UserDto {..
기본제공 findById(PK) 메소드 public Optional getMember(Long idx) { return memberRepository.findById(idx); } JPA에서 ID값을 파라미터로 SELECT 할 수 있는 기본 findById 메소드를 제공한다. 하지만 ID 필드가 아닌 다른 여러 필드들로도 데이터를 조회할 경우가 생기게된다. 상황 로그인 API를 구현하면서 파라미터로 받아온 아이디와 패스워드에 맞는 회원 정보가 있는지 조회해야하는 상황이 생겼다. 1) AuthController.java @PostMapping("/login") public ResponseEntity login(@ModelAttribute LoginDto loginDto, @ApiParam(hidden = ..
JPA JPA : Java Persistence API 자바 진영의 ORM 기술 표준이다. JPA를 알아보기전에 ORM과 ORM 프레임워크에 대해 알아보자. ORM ORM : Object Relational Mapping 객체와 관계형 데이터베이스를 매핑한다는 뜻이다. ORM 프레임워크 ORM 프레임워크를 사용함으로써 그동안 개발해왔던 INSERT/UPDATE/SELECT 쿼리 등을 직접 작성하지 않고도 데이터를 저장할 수 있게되었고 우리는 객체를 자바 컬렉션에 저장하듯이 ORM 프레임워크에 저장하면 쿼리 작성 시의 일들을 수행할 수 있게 되었다. ORM 프레임워크에 저장된 객체들은 ORM 프레임워크가 적절한 SQL을 생성해서 데이터베이스에 저장된다. ORM 프레임워크는 단순히 SQL을 생성해서 데이터베..
도입 스프링부트 프로젝트에서 JPA를 사용하여 API를 만드는 상황에 놓였다. 나는 API의 파라미터로 받아올 DTO 파일을 생성하였고, JPA Repository로 보낼 Entity 파일을 생성하였다. com.api.seohae - dto UsersDTO.java - entity Users.java 위 구조로 갔을때 만나게될 상황을 자세히 살펴보자. 상황분석 Users 테이블에 회원을 등록하는 간단한 POST API를 보자. @PostMapping("") public ResponseEntity addUser(@ModelAttribute UsersDto usersDto) { Users users = userService.addUser(usersDto); return ...; } 파라미터로 UsersDto..