일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MSSQL
- getDateCellValue
- EmbeddedId
- https
- deserializer
- @CreateDate
- RootGraph
- pooled-lo
- 티스토리챌린지
- createEntityGraph
- 오블완
- @EntityListeners
- mysql not equal null
- yml
- AuditingEntityListener
- 운동해서 광명찾자
- 버전 문자열 비교
- fractional seconds
- mysql equal null
- sendFractionalSeconds
- MYSQL
- spring boot
- apatch poi
- mysql =
- 1*1000
- getEntityGraph
- NamedEntityGraph
- +9:00
- load order
- Protecle
- Today
- Total
목록java (20)
Hello
구분자가 0이거나 0이 아니거나를 구분자로 사용해야하는 경우 @DiscriminatorValue(“not null”)를 사용해 처리한 내용을 작성하려고 합니다.상속 매핑(Inheritance Mapping)은 상속 구조를 데이터베이스 테이블에 매핑하는 방법을 제공합니다.@DiscriminatorValue(“not null”) 는 null이 아니면서 지원되지 않는 판별자 값의 경우, 명시적으로 매핑되지 않은 모든 값을 처리 경우 이 주석이 있는 클래스에 매핑됩니다.예시)@Entity@Inheritance(strategy = InheritanceType.SINGLE_TABLE)@DiscriminatorColumn(name = "targetCount")public abstract class Event { ..
ORM을 사용하면서 Subquery를 사용할 일이 있을까 생각했는데 필요한 경우가 생겨 Subquery 적용했던 내용을 정리 하려고 합니다. Subquery가 필요했던 이유는 집합 값이 필요했기 때문입니다. queryDsl에서 Subquery를 사용하는 방법은 간단합니다. JPAExpressions를 통해 결과 값 하나를 반환하는 쿼리를 작성합니다. 그리고 select 또는 where 중 필요한 구문에서 적용해 사용할 수 있습니다. SelectJPQLQuery questMaxSubquery = JPAExpressions .select(qQuest.complete.max()) .from(qQuest) .where(qQuest.id.eq(qUserQUest.quest.i..
문득 instanceof 할때 null 체크를 하고 비교해야하는지 궁금해서 알아보았습니다. java11 오라클 문서에서 확인할 수 있습니다.연산자의 RelationalExpression 피연산자 유형은 instanceof참조 유형이거나 null 유형이어야 합니다. 그렇지 않으면 컴파일 시간 오류가 발생합니다. null instanceof Class 비교 시 결과는 false입니다. instanceof 연산자를 사용할 때 null 확인 필요하지 않습니다. 참고 : https://stackoverflow.com/questions/2950319/is-null-check-needed-before-calling-instanceofhttps://docs.oracle.com/javase/specs/jls/se11..
Keytool를 사용해 Keysotre 생성 참고 Protecle를 사용해 Keystore 생성 다운로드 경로 : https://sourceforge.net/projects/portecle/ 설치 후 protecle.jar 실행 File -> New Keystore... Generate Key Pare 미리 선택된 Algorithm : RSA, Key Size : 2048 사용 Common Name에 도메인을 입력 후 OK Key Pair Entry Alias 팝업에 개인 키에 대해 선택한 별칭을 지정 별칭은 SSL 인증서를 이 키 저장소로 다시 가져올 때 사용됩니다. 비밀번호 입력 후 OK 키 생성 완료 저장 하기! java 테스트 생성한 keysotre(jjin-keystore) 프로젝트 resour..
밀리초 시간 단위를 변환할 때 아래처럼 작성했었다. private final long TIMEOUT_LIMIT = 60 * 1000 * 30L; //30분 자바에서 명시적으로 표현가능한 TimeUnit을 공유 받게 되어 사용해 보았다. private final long TIMEOUT_LIMIT = TimeUnit.MINUTES.toMillis(30); 위 두 코드는 동일한 값을 가진다. TimeUnit 는 시간 단위 간에 변환하고 이러한 단위에서 타이밍 및 지연 작업을 수행하는 유틸리티 메서드를 제공합니다. 다양한 시간 표현을 명시적으로 작성할 수 있다. TimeUnit.MINUTES.toSeconds(30); TimeUnit.HOURS.toMinutes(3); ...
기준시간을 UTC로 사용하고 사용자가 설정한 타임존에 맞춰 시간을 표시하고 처리가 필요했다. ZonedDateTime, moment-timezone js 를 사용해 서버-클라이언트 처리한 내용을 간단하게 정리하려고 함. ZonedDateTime은 날짜-시간과 시간대 값을 가진 객체이다. ex) 2021-08-01T00:00+09:00[Asia/Seoul] 타임존 서버 : UTC 클라이언트 : 개별 타임존 시간 포맷은 'YYYY-MM-DDTHH:mm:ssZ' 사용. 클라이언트 -> 서버 클라이언트 클라이언트가 로드 될 때 설정한 타임존을 moment default timezone 설정 선택한 날짜-시간 값을 moment-timezone을 사용해 타임존 적용 format() 함수 사용 시 패턴을 입력하지 않..
아래구조와 동일한 객체 조회 시 lazy 로 동작해 n+1이 발생했다. 특정 쿼리문에서만 join을 사용해 관련된 테이블을 모두 조회해야할 필요가 있어, EntityGraph를 사용해 해결한 방법을 정리하고자 글을 작성합니다. 어떤 게임에서 건축물을 지을 때 해당 건축물은 여러 옵션을 갖고 있다. 건축물은 옵션을 가지며, 옵션은 실제 효과를 여러개 가질 수 있다. 옵션과 효과 객체를 n:m 매핑 테이블을 만들어 사용이 필요하다. Building 조회시 Option, OptionEffect, Effect를 가진 join 쿼리 적용 방법 @NamedEntityGraph 정의 @Entity @Table(name = "tb_building") @NamedEntityGraph(name = "building.opt..
유니크 컬럼에 중복값을 넣으려고 할 때, DataIntegrityViolationException이 발생해 db호출이 일어나는 메소드에서 Exception을 잡아 IllegalArgumentException으로 감싸 넘기려고 했는데 캐치 되지 않고 해당 에러가 리턴되었다. @Transactional public void addMemberPhone(MemberPhoneRequest memberPhone) { MemberPhone memberPhone = new MemberPhone(); ... try{ memberPhoneRepo.save(memberPhone); }catch (DataIntegrityViolationException e){ throw new IllegalArgumentException("..
@ManyToOne 관계 매핑 시 연관 테이블의 PK가 아닌 컬럼으로 관계 매핑 설정 시 ClassCastException이 발생하게 됩니다. 에러 내용을 보면 해결 방법이 나와 있어 문제 해결 하는 방법은 간단 합니다. 연관된 엔티티 객체가 Serializable를 구현하는 것 입니다. java.lang.ClassCastException: com.example.demo.ServerInfoEntity cannot be cast to java.io.Serializable 예시 테이블을 사용해 방법과 이유에 대해 간략히 설명합니다. FK 컬럼 조인 방법 @JoinColumn 조인할 컬럼명 referencedColumnName 명시 연관 엔티티 객체가 Serializable 구현 @Entity @Table(n..
자바에서 점으로된 문자열 비교해 소팅이 필요한 경우가 생겨 maven-artifact 라이브러리를 사용한 내용을 정리하려고 합니다. maven denpendency org.apache.maven maven-artifact 3.9.6 version compare test code public class VersionCompareTest { @Test void version_compare_test() { List list = new ArrayList(); for (int i = 0; i < 100; i++) { Test1 test1 = new Test1(); test1.setSeq(i + 1000); test1.setName("slot" + i); test1.setVersion((i / 50) + "." +..