본문 바로가기

Framework/Spring8

[Spring] 엑셀 데이터 검증 ( Excel Data Validation ) DataValidationConstraint 10건 이상 오류시 시트1 첫번째 행에 시트2 참조해서 유효성 검사하는 Java 코드 샘플입니다. gradle dependencies dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.apache.poi:poi:5.0.0' implementation 'org.apache.poi:poi-ooxml:5.0.0' } Java Source 예제 import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.util.CellRangeAddressList; import org.apache.po.. 2023. 6. 15.
Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException org.springframework.dao.InvalidDataAccessApiUsageException: Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query @Transactional 추가해주시면 해결됩니다. 예시 import org.springframework.transaction.annotation.Transactional; ... @Transactional public void update(User user) { userRepository.save(user); } 2023. 6. 12.
[Spring] MySQL 연동 (JPA, application.properties) # Spring DataSource (MySQL) spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/데이터베이스명?useSSL=false&characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.username=아이디 spring.datasource.password=비밀번호 # Spring JPA spring.jpa.database=mysql spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect spring.jpa.hibernate.ddl-aut.. 2023. 6. 2.
[Spring] org.thymeleaf.exceptions.TemplateInputException org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/page/test], template might not exist or might not be accessible by any of the configured Template Resolvers 내용 IntelliJ에서 개발할 때는 문제가 없었지만 실제 서버에 배포 후 TemplateInputException이 발생이 있었습니다. 관련해서 찾아보니 내부 Spring Boot Server를 사용하거나 Tomcat을 사용할 때는 발생하지 않지만 다르게 배포를 하는 경우 ( 필자에 경우 jar 배포였음 ) 문제가 생길 수 있어서 해결방안을 공유합니다. 해결방안 기존 return.. 2023. 5. 25.
[Spring] Web Project 시작하기 STEP 1 이 글은 Spring 개발을 공부하시는 초심자용으로 만들어졌습니다. 프로젝트 IDEA: IntelliJ Java Version: openjdk version 1.8.0_292 spring-boot-starter-parent: 2.7.11 인텔리제이 신규 프로젝트 생성 ( IntelliJ New Project ) 스프링 이니셜라이즈 설정 ( Spring Initializr ) Spring Initializr를 선택합니다. 설정 내용 Name 프로젝트 이름 임의 Location 프로젝트 경로 임의 Language 개발 언어 Java Type 패키지 관리 타입 Maven Group 그룹 임의 Artifact 아티팩트 자동설정 Package name 패키지 이름 자동설정 JDK Java Development .. 2023. 5. 15.
[Spring] 트랜잭션 전파 규칙 (Transaction Propagation Behaviors) @Transactional Spring에서 해당 메서드(method)를 하나의 트랜잭션(Transaction)으로 진행하는 애노테이션(Annotation)입니다. 전파 규칙 (Propagation Behaviors) 총 7가지 전파 규칙이 있고 여기서 기존 트랜잭션이 있거나 없는 경우 다 다르게 작동합니다. 전파 규칙 설명 MANDATORY 현재 트랜잭션을 지원하고, 존재하지 않으면 예외를 발생시킵니다. NESTED 현재 트랜잭션이 있는 경우 중첩된 트랜잭션 내에서 실행하고 REQUIRED그렇지 않은 경우와 같이 동작합니다. NEVER 트랜잭션이 아닌 방식으로 실행하고 트랜잭션이 있으면 예외를 발생시킵니다. NOT_SUPPORTED 트랜잭션이 아닌 방식으로 실행하고 현재 트랜잭션이 있는 경우 일시 중단합.. 2023. 4. 21.
[Spring] Spring 버전별 시스템 요구사항 확인하기 Spring 개발을 하다보면 새로운 프로젝트를 만들 때마다 버전 이슈로 고생하는 경우가 있었을 겁니다. 왠만하면 하위 버전을 지원하는 편이지만 기술이 발전되는 속도에 따라 하위 버전을 지원을 안하는 경우가 점점 더 생기는 추세 같습니다. 그래서 Spring Project 개발전에 앞서서 시스템 요구사항 확인 하는 방법을 공유하려고 합니다. 1. 사용하려는 Spring 버전 확인 가장 먼저 해야할 일은 프로젝트를 생성할 때 사용할 Spring 버전을 확인해야합니다. 2. Spring Framework 확인 1. Spring 홈페이지(https://spring.io/) 들어가서 [Projects] -> [Spring Framework] 클릭 2. [LEARN ]-> [Reference Doc.] (해당 버전.. 2023. 1. 31.
[Spring] Spring Boot Querydsl 사용 1. pom.xml com.querydsl querydsl-apt 4.1.4 com.querydsl querydsl-jpa 4.1.4 2. JPAQuery 사용 예시 2-1. Select One import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import com.querydsl.jpa.impl.JPAQuery; @Service @RequiredArgsConstructor public class MemberService { private final EntityManager entityManager; public Member findById(Long id) { QMember qMember = QMembe.. 2022. 12. 27.