본문 바로가기
반응형

전체 글34

HILO SCORE BOARD HTML 삽입 미리보기할 수 없는 소스 2023. 5. 24.
[Spring] HikariPool-1 - Failed to validate connection ConnectionID 어플리케이션 테스트중 갑자기 아래 에러가 발생하기 시작했다 2023-05-11 15:01:28.928 WARN [PoolBase.java:isConnectionAlive:184] - HikariPool-1 - Failed to validate connection ConnectionID:10 ClientConnectionId: a042e5e4-d1ba-484e-b0b3-969881846791 (연결이 닫혔습니다.). Possibly consider using a shorter maxLifetime value. 2023-05-11 15:01:28.952 WARN [IOBuffer.java:log:7238] - TDSCommand@7d589a0a (SQLServerStatement:158 executeXXX).. 2023. 5. 11.
SSH로 간단하게 ip 변경하는 방법 우선 ifconfig 명령으로 ip를 변경할 interface를 조회 합니다 ifconfig 위의 이미지처럼 인터페이스 정보들이 나옵니다. 만약 ifconfig 명령어가 안된다면 아래명령어로 패키지를 설치합니다 apt-get install net-tools 그런다음 아래 명령어로 원하는 인터페이스를 선택하여 ip를 변경해주면 됩니다 ifconfig enx00e04f683ad9 down ifconfig enx00e04f683ad9 192.168.100.10 netmask 255.255.255.0 up ifconfig 변경후 ifconfig로 변경된 인터페이스 정보를 보실수 있습니다 2023. 5. 4.
[Spring JPA] Executing an update/delete query 위의 에러는 @Query 나 EntityManager를 통해 생성한 insert, update, delete NativeQuery를 호출할때 발생할 수 있습니다 DB의 데이터 변경은 트랜잭션처리가 필요한데 이런 처리가 누락되어 발생합니다. 해결책은 의외로 간단합니다. 해당 메서드나 메서드를 추가하는 서비스의 메서드에 @Transational 어노테이션을 추가하여 트랜잭션 처리를 해주면 됩니다 2023. 4. 28.
[Spring] DTO에 @Builder 사용시 JSON parse error: Cannot construct instance of 에러 발생하는 이유 DTO의 불변성을 위해 보통 아래와 같이 DTO를 만듭니다 @Builder @Getter public class TestDTO { private final String name; } 간혹 Jackson에서 역직렬화를 하는경우가 있는데 이럴경우 해당 클래스는 기본 생성자가 없으므로 JSON parse error: Cannot construct instance of 가 발생합니다. 해결방법은 여러가지가 있지만 아래아 같이 처리할수 있습니다 1) JsonCreator 와 JsonProperty 사용하여 생성자 만들기 private @JsonCreator TestDTO( @JsonProperty("name") String name) { this.name = name; } TestDTO 클래스에 위와 같이 생성자.. 2023. 4. 4.
가로 세로 평수 계산기 HTML 삽입 미리보기할 수 없는 소스 HTML 삽입 미리보기할 수 없는 소스 2023. 4. 3.
[Spring JPA] 외래키를 복합키에 포함하기 위의 이미지와 같은 구조의 테이블을 JPA Entity로 지정해봅시다 우선 grand_parent 테이블 엔티티는 간단하게 구성할 수 있습니다 @Entity public class GrandParent { @Id @Column(name= "grand_parent_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private Long grandParentId; @Column(name= "grand_parent_name", nullable = false) private String grandParentName; } 다음으로 parent 테이블 엔티티를 구성해봅시다. @IdClass를 이용하여 구성할건데 이전글 2023.02.19 - [Spring] - [.. 2023. 3. 31.
Gradle Gradle은 그루비를 이용한 빌드 자동화 시스템이다 ​ 디렉토리 구조 /gradle - gradle 버전별 엔진 및 설정 파일 /.idea - 에디터 관련 파일들 /gradlew - gralde 명령파일 /settings.gradle - 빌드할 프로젝트 정보 설정(싱글프로젝트의 경우 생략 가능) /build.gradle - 프로젝트 빌드에 대한 모든 기능 정의 ​ 의존관계 설정 implementation - 프로젝트 컴파일 과정에서 필요한 라이브러리 testImplementation - test시에 필요한 dependency 관 providedCompile - compile시에는 필요하지만, 배포시에는 제외될 dependency를 설정 providedRuntime - runtime시에만 필요하고, 실행.. 2023. 3. 29.
[Spring] mapStruct에서 LocalDateTime을 epoch Milli로 변경하는 방법 @Mapper(componentModel = "spring") public interface TestMapper extends EntityMapper { TestMapper MAPPER = Mappers.getMapper(TestMapper.class); default Long map(LocalDateTime localDateTime) { return localDateTime != null ? localDateTime.toInstant(ZoneOffset.of("+09:00")).toEpochMilli() : null; } @Override @Mappings({ @Mapping(source = "insertDt", target = "insertMilli", qualifiedByName = "toLong".. 2023. 3. 24.
[Spring] 조회메서드에 @Transactional(readOnly=true)를 사용해야하는 이유 일반적으로 데이터베이스 트랜잭션은 읽기 또는 쓰기 작업 중 하나 이상을 수행합니다. 트랜잭션이 쓰기 작업을 수행할 때는 데이터베이스에서 일관된 상태를 유지하기 위해 여러 작업이 순차적으로 실행되어야 합니다. 따라서 트랜잭션 범위 내에서 작업이 완료될 때까지 다른 트랜잭션에서 해당 데이터에 대한 읽기 작업이 차단됩니다. 이러한 이유로 읽기 작업이 많은 메서드에서 트랜잭션을 읽기 전용으로 설정하면, 해당 메서드에서는 트랜잭션을 시작하지만 쓰기 작업이 수행되지 않으므로 여러 트랜잭션에서 동시에 데이터를 읽을 수 있습니다. @Transactional(readOnly=true)를 사용하면 Spring은 트랜잭션을 읽기 전용으로 설정하여 데이터베이스에서 읽기 작업을 수행하는 동안 다른 트랜잭션에 영향을 미치지 않도.. 2023. 3. 23.
반응형