목록웹개발/Jpa (20)
써먹는 웹개발
1. Jpa 내림차순 정렬 - examRepository.findAllOrderBySeqDesc(); 2. Jpa 오름차순 정렬 - examRepository.findAllOrderBySeqAsc();
1. 문제 : 조회시 Jpa든, Spring boot Jpa(querydsl)든지 상관없이 첫째 줄만 반복해서 출력되는 문제가 있음 2. 원인 : 테이블의 기본키가 2개인데 모델에 @Id를 하나만 설정했음 3. 해결과정중에 발생한 에러 Q) @Id를 2개 넣으면 되지 않을까? A) 에러발생 : Unable to build Hibernate SessionFactory; nested exception is org.hibernate.MappingException: Composite-id class must implement Serializable 4. 가설 : idClass에 직렬화가 반드시 필요하다고 하면 생성하면 되지 않을까? 5. 해결방법 1) 복합키가 담긴 IdClass 1 2 3 4 public cl..
해결방법 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 plugins { id 'org.springframework.boot' version '2.6.0' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } ... dependencies { ... implementation 'com..
@Data @JsonInclude(JsonInclude.Include.NON_NULL) public class MyDto { //@JsonInclude(JsonInclude.Include.NON_NULL) private String stringValue; private int intValue; boolean booleanValue; } 클래스 필드에서 null이 되는 필드는 JSON으로 serialize할 때 제외하도록 하는 어노테이션입니다. 위 코드에서는 stringValue 변수는 JSON으로 저장되지 않습니다. ※ serialize : 자바 객체를 JSON으로 변환하는 작업 (JSON -> 객체는 deserialize)
1. @Transient : 해당 필드 데이터베이스 매핑 무시 - 모델이나 리스트(맵)에는 추가하고 싶은데 테이블에는 없는 컬럼일때 사용 (안쓰면 jpa로 전체조회(selectFrom(table))시 에러남) 2. @Table : 테이블 3. @Column : 컬럼 ... 생각나면 적겠음 (1번 적으려고 쓴 글)
1 2 3 4 5 6 7 8 9 10 11 @ApiModelProperty(value = "삭제여부") private Character delYn; /** * insert 되기전 (persist 되기전) 실행된다. */ @PrePersist void prePersist() { // 삭제구분 파라미터가 안넘어갈때 N으로 처리 this.delYn = this.delYn == null ? 'N' : this.delYn; } Colored by Color Scripter cs 참고 : https://dotoridev.tistory.com/6
@SequenceGenerator의 name과 @GeneratedValue의 generator을 맞춰주는게 포인트 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // 시퀀스 매핑 코드 @Entity @SequenceGenerator( name = "MEMBER_SEQ_GENERATOR", sequenceName = "MEMBER_SEQ", //매핑할 데이터베이스 시퀀스 이름 initialValue = 1, allocationSize = 1) public class Member{ @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MEMBER_SEQ_GENERATOR") private Long id; ... } Colore..