728x90
반응형

Spring & Spring Boot 27

[ Spring-Boot ] JPA QueryDsl 정렬 사용하기

안녕하세요 이번 글에서는 QueryDsl 사용 시 정렬(ORDER BY)을 사용하여 보겠습니다. @Service ( @Controller , View는 생략하겠습니다. ) public Page getBoardSearchList(int page, BoardSearch boardSearch) { //페이징 조건과 정렬 조건을 같이 보내 준다. PageRequest pageRequest = PageRequest.of(page, 15, Sort.by(Sort.Direction.fromString(boardSearch.getOrderBy()), boardSearch.getSort())); return boardQuerydslRepository.getSearchBoardList(pageRequest, boardSe..

[ Spring-Boot ] JPA Embedded 타입 사용하기

안녕하세요 이번 글에서는 JPA에서 Embedded 타입을 사용하여 보겠습니다. 먼저 임베디드 타입이 어떤 것 인지 간략하게 알아보겠습니다. - Entity 타입 : @Entity가 선언되어 있는 객체를 뜻한다. - 값 타입 : int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체 - 임베디드 타입 : 주로 기본 값 타입을 모아서 만들어서 복합 값 타입이라고도 말한다. 이제 코드로 알아보겠습니다. @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name="member_id") private Long id; @NotEmpty private String name; @Column(name =..

[ Spring-Boot ] JPA Entity 사용하기

안녕하세요 이번 글에서는 Enttiy에서 사용하는 몇 가지 annotation을 정리해 보겠습니다. [ 클래스에 선언 ] @Entity > JPA 가 관리하는 엔티티로 설정된다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entitty를 필수로 선언하여야 한다. > 기본 생성자 필수 , final 클래스, enum, interface, inner 클래스 사용 X > 저장할 필드에 final 사용 X @Table > 엔티티와 매핑할 테이블을 지정 > 속성 name : 매핑할 테이블 이름 catalog : 데이터베이스 catalog 매핑 schema : 데이터베이스 schema 매핑 uniqueConstraints : DDL 생성 시에 유니크 제약 조건 생성 [ 필드에 선언 ] @Id > PK 칼럼으로 사..

[ Spring-Boot ] JPA @GeneratedValue 사용하기

@GeneratedValue란? -> JPA에서 Entity의 Primary Key를 생성하여 주는 기능이다. @Id @GeneratedValue @Column(name = "member_id") private Long Id; 위처럼 Pk로 사용될 Entity의 프로퍼티에 @Id를 선언하여 준다음 @GeneratedValue를 선언하여 준다. @GeneratedValue는 strategy 네 가지 전략을 바꿔 가며 사용할 수 있다. 1. IDENTITY @GeneratedValue(strategy = GenerationType.IDENTITY) > 기본 키 생성을 데이터베이스에 위임한다. Entity를 등록할 때 DB에서 AUTO_INCREAMENT 하여 PK를 생성 후 INSERT 한다. MySQL, ..

[ Spring-Boot ] JPA 공통 Entity 만들기

안녕하세요 이번 글에서는 JPA Entity를 생성할 때 공통으로 사용될 Entity를 만들어 보겠습니다. * 공통 Entity를 사용하는 이유 -> 등록 날짜, 수정 날짜, 등록자, 수정자 등등.. 테이블에 공통적으로 필요한 부분을 각각에 Entity에 설정하는 것이 아닌 하나의 클래스를 만들어 필요한 Entity에 적용해서 사용하기 위함. @MappedSuperclass //상속을 받은 Entity 에서 해당 클래스의 프로퍼티를 사용하기 위하여 선언 @Getter @EntityListeners(AuditingEntityListener.class) //audit 을 이용하면 자동으로 시간을 매핑하여 데이터베이스의 테이블에 넣어주게 됩니다. public class BaseEntity { @CreatedD..

[ Spring-Boot ] @Controller 에서 파라미터 받기

안녕하세요 이번 글에서는 Controller에서 파라미터를 받는 몇 가지 방법을 정리하여 보겠습니다. > Get 방식 전송 : http://localhost:8080/example1? id=momo&code=1 /** * 변수 하나하나 받을 경우 * @param id * @param code * @param model */ @GetMapping("/example1") public void example1(@RequestParam String id, @RequestParam String code, Model model){ model.addAttribute("id", id); model.addAttribute("code", code); } 파라미터를 하나하나 받을 경우 @RequestParam을 선언한 다음..

[ Spring-Boot ] Mybatis DB 커넥션 설정하기

안녕하세요 이번 글에서는 Mybatis를 사용하기 위해 DB 커넥션 설정을 해보겠습니다. 먼저 아래 디펜던시가 있는지 확인하여 줍시다! ( Boot 프로젝트 생성 시 넣어주면 들어 있습니다. ) org.mybatis.spring.boot mybatis-spring-boot-starter 2.1.4 그다음 application.properties 파일에 아래와 같이 작성하여 줍시다. ( 작성자는 mariaDB 기준으로 작성하였습니다. 본인에 환경에 맞게 구성해 주세요 ^^ ) spring.datasource.driverClassName = org.mariadb.jdbc.Driver spring.datasource.jdbc-url= jdbc:mariadb://localhost:3306/example spri..

[ Spring-Boot ] @ControllerAdice 사용하여 예외처리 하기 2편

이전 글에 이어서 진행하겠습니다. 예외 처리 시 throw를 이용하여 전달해 줄 객체를 만들어 주겠습니다. 먼저 AbstractBaseException 추상 클래스를 만들어 줍시다. //예외처리를 하기 위해 RuntimeException 을 상속받아 줍니다. public abstract class AbstractBaseException extends RuntimeException { private static final long serialVersionUID = 8342235231880246631L; //만들어둔 예외 코드사용을 위해 선언 protected BaseResponseCode responseCode; //message 에 사용할 매개변수를 담을 배열 선언 protected Object[] ar..

[ Spring-Boot ] Swagger 사용하기

안녕하세요 이번 글에서는 Swagger를 사용하여 보겠습니다. Swagger란? 간단하게 정리하면 API스펙 문서 또는 개발자에게 필요한 documentation Page입니다. 사용방법에 앞서 먼저 보여드리자면 이런 식으로 서버를 실행시킨 다음 http://localhost:8080/swagger-ui.html( IP와 PORT는 변경될 수 있습니다.) 접속하게 되면 서버의 프로세스를 확인할 수 있습니다. 먼저 Swagger를 사용하기 위해 라이브러리를 추가하겠습니다. 아래 코드를 입력 한 다음 빌드하여 줍시다. Maven io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 Gradle // https://mvnre..

[ Spring-Boot ] Scheduler 사용하기

안녕하세요 이번 글에서는 Boot에서 Scheduler를 사용해 보겠습니다! 스케줄링은 특정 기간을 지정하여 원하는 작업을 실행시키는 프로세스입니다. Spring Boot에서 스케쥴러를 사용하기 위해서 SpringApplication에 @EnableScheduling 선언하여 줍니다. @SpringBootApplication @EnableScheduling // 스케줄러 사용을 위해 선언 public class SongJavaSpringApplication { public static void main(String[] args) { SpringApplication.run(SongJavaSpringApplication.class, args); } } 그다음 스케줄링 작업을 진행할 클래스를 만들어 줍시다. ..

728x90
반응형