본문 바로가기

개발/JPA5

Spring Boot + Gradle에서 사용할 querydsl 초기 셋팅 언제나 maven으로 진행했던 프로젝트... pom 설정은 익숙하지만 Gradle로 셋팅하는건 어색해서 게시글로 남겨본다. plugins { id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' id 'java' } group = 'com.todo' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementati.. 2022. 11. 18.
Serializable를 사용하는것인가? 스터디를 진행하면서 갑자기 Serializable가 생각났다. 현재 프로젝트에는 implements Serializable를 진행하고 있지 않다. 하지만 이전 회사에서 한번 사용했던 기억이 있었기에 언제 사용하고 언제 사용안하는지에 대해서 궁금증이 생겼다. 우선 Serializable은 직렬화로 해석된다. JPA 표준에서는 Entity class는 Serializable를 반드시 implements 할 것을 요구한다. JPA를 사용하면서 Serializable를 사용하는 경우는 domain 객체를 DTO, VO를 생성하지 않고 보낼대 implements를 진행한다. Serializable를 상속 받아 caching/optimization을 목적으로 HttpSession 값을 저장할 수 있다고 한다. ht.. 2022. 11. 16.
JPA + Postgres 사용시 주의할 @Lob 프로젝트로 Entity 작성시 평소와 같이 @Lob를 사용하고 있었다. Postman을 통해서 등록 메소드를 테스트 하는 상황에서 문제가 발생했다. title, contents의 값이 의도와 다르게 contents에 이상한 숫자가 들어간 상황이다.... 왜지...? 왜지...? 처음에는 request model에 담기면서 값이 달라지나? 라고 생각했지만 아닌것을 확인 자세히 기억해보면 그동안 JPA를 사용하면서 이용했던 DB는 h2 mysql 정도라는 것을 기억해냈다. 지금 Postgres를 사용하면서 이런 문제가 생긴것을 생각하고 알아봤다. 결론은 @Lob말고 @Column(nullable = false, columnDefinition="TEXT") 으로 변경하면 TEXT가 들어가는 것을 확인할 수 있.. 2022. 11. 15.
@Enumerated(EnumType.SRTING) EnumType.SRTING - JPA로 데이터베이스 저장시 Enum 값을 어떤 형태로 저장할지 결정한다. - 기본적으로 int인 숫자가 저장 되는데 - 숫자로 저장 시 해당 값이 어떤 의미인지 알 수 없다. - 저장 시 문자열로 저장 할 수 있게 (EnumType.SRTING)로 선언하자 2022. 7. 10.
Entity 제작시 유의사항 (개인 공부입니다.) @Entity // 더이상 자세한 설명은 생략한다. /* * 테이블 속성을 정의하기 위한 Annotation * 상속 전략을 사용하는 테이블의 경우 어떤 상속 전략을 * 사용할지에 따라서 작성을 하면 안되는 경우가 있습니다. * 상속 전략을 사용하실 것이라면 어떤 상속 전략을 쓸지 판단해야 합니다. */ @Table( /* * Table 이름을 정의. * 이 부분을 제거하면 Class 이름으로 테이블이 생성된다. * 테이블 이름 규칙은 [TB] + _ + [GROUP NAME] + _ + [TABLE NAME] 입니다. * 하지만 여기서 GROUP NAME 까지 작성하시는건 어려울 것이라 판단됩니다. * 그래서 [TB] + _ + [TABLE NAME] 와 같은 규칙으로 작성하시길 바랍니다. */ nam.. 2022. 7. 9.