반응형

전체 글 172

[ Spring-Boot ] Data - JPA 사용하기

DB는 H2 DB를 사용하였습니다. 관련 설정이나 설치방법은 제외하겠습니다. 테스트에 사용할 엔티티를 생성 @Entity @Getter @Setter @NoArgsConstructor(access = AccessLevel.PROTECTED) // 기본생성자를 만들어 주는 기능 public class Member extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "member_id") private Long Id; private String username; private int age; @ManyToOne(fetch = LAZY) @JoinColumn(name = "team1_id") private ..

Spring Cloud Netflix - Eureka

- Spring Cloud Netflix Spring Cloud Netflix는 Spring 환경 및 기타 Spring 프로그래밍 모델 관용구에 대한 자동 구성 및 바인딩을 통해 Spring Boot 앱에 대한 Netflix OSS 통합을 제공합니다. 몇 가지 간단한 주석을 사용하여 애플리케이션 내부의 공통 패턴을 빠르게 활성화 및 구성하고 전투 테스트를 거친 Netflix 구성 요소로 대규모 분산 시스템을 구축 할 수 있습니다. 제공되는 패턴에는 Service Discovery (Eureka), Circuit Breaker (Hystrix), Intelligent Routing (Zuul) 및 Client Side Load Balancing (Ribbon)이 포함됩니다. https://spring.io..

[ 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 지연로딩(LAZY) 과 즉시로딩(EAGER)

안녕하세요 이번 글에서는 JPA에서의 지연 로딩과 즉시 로딩에 대해서 알아보겠습니다. 두 가지 Entity를 예시로 만들겠습니다. Member @Entity @Getter @Setter public class Member{ @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "member_id") private Long Id; private String username; private int age; @ManyToOne() @JoinColumn(name = "team1_id") private Team team; Team @Entity @Getter @Setter public class Team { @Id @GeneratedValue @C..

카테고리 없음 2021.05.23

[ 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 ] 파일 업로드 사용하기

안녕하세요 이번 글에서는 파일 업로드하는 방법을 정리하여 보겠습니다. 간단하게 아래처럼 화면을 구성하겠습니다. 파일업로드 @RestController @RequestMapping("/file") public class FileController { Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private UploadFileService fileService; /** * 업로드 리턴 */ @PostMapping("/save") @ApiOperation(value="업로드",notes = "") public BaseResponsesave(@RequestParam("uploadFile") MultipartFile multipartFile)..

카테고리 없음 2021.05.22

[ 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을 선언한 다음..

반응형