본문 바로가기
728x90
반응형
SMALL

jpa5

QueryDSL select specific columns SELECT all columns private final QDoc doc = QDoc.doc; @Override public List findAll(DocSearch search) { return from(doc) .where( eqState(search.getStat()), eqElucidatorDept(search.getEqDeptName()), ... likeElucidator(search.getElucidator()), likeElucidatorDept(search.getDeptName()) ).fetch(); ) ​ Select specific columns (using Tuple) @Override public List findAllForDashboard(DocSearch search) { .. 2020. 8. 25.
LocalDate, LocalTime JPA Timezone 문제 Java8 이전에는 Date 에 대해서 대응하는 것이 다소 허접했다. 물론 Joda-Time (https://www.joda.org/joda-time/) 이 있었지만 그래도... 이렇게나 많이 쓰이고 있는 Language 에서 Date, Time 을 다루는 객체가 너무 허접했다. Java8 에서 LocalDate, LocalTime, LocalDateTime 등이 나오면서 매우 편리해 졌다. ​Spring Boot 와 JPA 를 사용하면서 도메인 모델에 맞는 제대로 된 Type 을 사용하게 되면서 LocalDate 와 LocalTime 을 구분해서 많이 사용한다. 새로운 API 개발 및 테스트를 진행하다가 이상한 문제에 맞닥뜨렸다. ​Entity 의 일부 내용 중 적용기간과 적용시간에 대해서 아래와 같이.. 2020. 3. 25.
[JPA] null value was assigned to a property of primitive type setter of [문제] - JPA를 통해 Insert 시 set 하지 않은 변수에 대해서는 Null 로 Insert 가 됨 - JPA를 통해 조회 시 int 형 변수에 대해서 NULL 값을 set 할 수 없다는 오류 발생 - Table Script 를 수정하여 NOT NULL DEFAULT 0 으로 속성 변경, 변수에도 @ColumnDefault(value = "0") 속성 추가 - JPA를 통해 Insert 시 set 하지 않은 변수에 대해서 Null 로 Insert 를 시도하기 때문에 Insert 시 오류 (Not Null) [해결] - 방법1. @PrePersist Annotation 이용 Entity Manager에서 persist 하기 바로 직전에 수행시킬 수 있는 method 정의 가능 @PrePersist.. 2019. 11. 14.
@OneToMany 단방향을 @ManyToOne 양방향으로 JPA 에서 Entity 간의 "관계" 가 중요한데 Parent - Child 가 있을 때 쉽게 생각하면 아래와 같이 @OneToMany 로 매핑할 수 있다. @Entity @Getter @Setter @Builder @NoArgsConstructor @AllArgsConstructor public class Parent { @Id @Column(name = "parent_id") @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String parentValue; @OneToMany @Builder.Default private List childList = new ArrayList(); } @Entity @Gette.. 2019. 8. 28.
728x90
반응형
LIST