본문 바로가기

Spring18

Spring JPA @Id 사용시 GenerationType JPA 엔티티의 식별자(Id)를 생성하는 방법을 지정하는데, 이를 GenerationType이라고 함 GenerationType은 다양한 전략을 제공하여 식별자를 자동으로 생성할 수 있음 1. AUTO 기본 값이며, 데이터베이스에 따라 자동으로 식별자를 생성 예를 들어, PostgreSQL에서는 SEQUENCE, MySQL에서는 AUTO_INCREMENT를 사용 @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; 2. IDENTITY 데이터베이스에 의존하는 자동 증가 식별자를 사용 예를 들어, MySQL의 AUTO_INCREMEN와 같이 사용 @Id @GeneratedValue(strategy = GenerationType.IDENT.. 2023. 12. 5.
Spring JPA hibernate.ddl-auto 정리 JPA 관련 설정 - spring.jpa.hibernate.ddl-auto에 대해 정리 none: 'hibernate.ddl-auto=none' 을 설정하면 Hibernate는 데이터베이스 스키마를 자동으로 생성하거나 갱신하지 않음. 즉, 애플리케이션을 실행할 때 데이터베이스의 스키마는 수동으로 관리해야 함 spring.jpa.hibernate.ddl-auto=none update: 'hibernate.ddl-auto=update' 는 Hibernate가 엔티티 클래스의 변경 사항을 기반으로 데이터베이스 스키마를 자동으로 갱신하려고 시도. 즉, 새로운 테이블이나 컬럼을 추가하거나 변경된 내용을 반영. 단, 기존 데이터는 유지되고, 새로운 컬럼에 대해서는 기본 값이 할당됨 (기존의 테이블이나 컬럼을 삭제하.. 2023. 12. 4.
Spring @RestControllerAdvice 적용 @RestControllerAdvice @RestControllerAdvice (@ControllerAdvice)는 전역으로 예외 처리할 수 있게 해주는 Annotation 이를 통해 각 Controller 별로 예외 처리 코드를 작성하여 중복 코드가 발생하는 것을 해결할 수 있고, 서비스 코드와 예외 처리 코드를 분리할 수 있음 패키지 단위 적용 basePackages에 package 경로를 명시하여 해당 package내에 적용 @Slf4j @RestControllerAdvice(basePackages = {"com.example.demo.ctl"}) // 여러개 추가 가능 public class DemoControllerAdvice { @ExceptionHandler public CommonRespo.. 2023. 11. 9.
Spring Validation 특정 String만 받도록 검증 하기 Request 시 String 필드가 특정 String만 받도록 검증하려고 할 때 다음과 같이 구현 @EnumValidator라는 Custom Annotation을 만들어서 target Enum에서 정의한 값들만 해당 필드에 받을 수 있도록 검증 EnumValidator (Annotation) @Documented @Constraint(validatedBy = EnumValidatorImpl.class) @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @NotNull(message = "Value cannot be null") @ReportAsSingleViolation public @interface EnumValidator { Class.. 2023. 11. 9.
Spring Boot & Thymeleaf 토이 프로젝트 [Course Registration System] Course Registration System Spring Boot와 Thymeleaf로 구현한 수강신청 웹 사이트 토이 프로젝트입니다. 개인 프로젝트로 진행했고, HTML 부분은 영한님의 스프링 강의에서 사용했던 HTML 코드를 수정하여 사용했습니다. Course Registration System Github https://github.com/wadekang/course-registration-system GitHub - wadekang/course-registration-system: Spring Boot 수강신청 웹 사이트 토이 프로젝트 Spring Boot 수강신청 웹 사이트 토이 프로젝트. Contribute to wadekang/course-registration-system develop.. 2022. 4. 1.
Spring JUnit5 Sql script로 테스트 데이터 불러오기 테스트를 할 때 sql로 미리 데이터를 insert 하고 해당 데이터로 테스트를 진행하고 싶을 경우 다음과 같이 설정하면 된다. 먼저 테스트 폴더에 resources 폴더를 만들어서 applciation.yml (or properties)을 설정해준다. spring: datasource: url: jdbc:h2:mem:testdb;MODE=MYSQL;DB_CLOSE_DELAY=-1 username: sa password: driver-class-name: org.h2.Driver jpa: properties: hibernate: dialect: org.hibernate.dialect.MySQL5InnoDBDialect storage-engine: innodb hibernate: ddl-auto: crea.. 2022. 3. 17.