전체 글
-
Jpa 연관관계카테고리 없음 2023. 4. 19. 09:55
jpa 연관관계 객체의 연관관계는 단방향 관계이다. 하지만 데이터베이스는 양방향 관계다. A -> B 객체밖에 접근만 가능하지만 데이터 베이스는 A B 둘다 가능하다. class A { B b; } class B{ } 일반적으로 쓰는 단방향 연관관계다. class A { B b; } class B { A a; } 양방향 연관관계다. 정확하게는 서로 다른 단방향 관계 2개다. @ManyToOne 다대일 관계 매핑 정보다. 글로벌 페치 전략을 설정 할 수 있다. 즉시로딩, 지연로딩 @JoinColumn 외래 키를 매핑 할 때 사용한다. 속성 중 name에 매핑할 외래 키 이름을 지정한다. 기본값은 필드명_참조하는 테이블의 기본키 컬럼명 @OneToMany 일대다 관계 매핑 정보다. 글로벌 페치 전략을 설정 ..
-
Jpa 엔티티 매핑카테고리 없음 2023. 4. 19. 09:55
jpa 엔티티 매핑 간략하게 정리만 해보겠다. 나머지는 책을 사서 읽어보도록! @Entity JPA에서 사용할 엔티티 이름을 지정한다. 설정을 하지 않으면 클래스 그대로를 사용한다. 기본생성자는 필수로 지정해애 된다. private 은 안된다. @Table 엔티티와 매핑할 테이블을 지정하고 생략하면 매핑한 엔티티 이름 그대로를 사용한다. 유니크 제약 조건을 속성으로 지정 할 수 있다. @Enumerated 자바의 enum을 사용할 때 정의한다. @Temporal 날짜 타입을 사용할 때 정의한다. TempoarlType.TIMESTAMP, TempoarlType.DATE, TempoarlType.TIME 등으로 지정 할 수 있다. @Lob 필드의 길이 제한이 없다. CLOB,BLOB 타입을 매핑할 수 있다..
-
spring data jpa 의 @jsonview카테고리 없음 2023. 4. 19. 09:55
spring data jpa 의 jsonview 바로 쓴다.ㅎㅎㅎ 왜냐면 쉬워서 바로 했다. 아무튼 이번엔 @jsonView를 사용해보자 이것도 간단하지만 어노테이션을 많이 추가 해야된다. 그때 그때 맞게 잘 쓰면 될거 같다. @Entity @Data @NoArgsConstructor @AllArgsConstructor public class Account { @Id @GeneratedValue @Column(name = "account_id") @JsonView(View.Accounts.class) private Long id; @NotNull @JsonView(View.Accounts.class) private String name; @OneToMany(mappedBy = "account") priv..
-
spring data jpa 의 jsonfilter카테고리 없음 2023. 4. 19. 09:55
spring data jpa 의 jsonfilter 이번엔 spring data jpa의 json 으로 보내기위한 방법을 한개더 포스팅 하겠다. jsonfilter 라는 어노테이션을 사용하여 해보자 소스는 dto와 비슷하다. 다른 부분만 올려서 설명하겠다. jsonfilter는 jackson 라이브러리의 어노테이션이다. 일단 entity에 jsonfilter를 추가하자 @Entity @Data @NoArgsConstructor @AllArgsConstructor @JsonFilter("accountFilter") public class Account { @Id @GeneratedValue @Column(name = "account_id") private Long id; @NotNull private St..
-
spring data jpa 의 json dto카테고리 없음 2023. 4. 19. 09:55
spring data jpa 의 json 오늘은 spring data jpa를 사용하여 json을 출력해보는 포스팅을 하겠다. 글로버 페치 전략에 즉시로딩이 아닌 지연로딩을 사용하면 영속성 상태가 아닐 경우 데이터를 가져올 때 에러가 발생한다. 그래서 open session in view 이하 osiv를 사용하는데 messageconverter일 경우 즉 json일 경우 그래도 에러가 발생한다.(연관관계가 양방향 일 경우) jackson에서 에러는 내뿜는듯 하다. 계속 순환하는거 같다. 필자가 모르는거 일수도 있다. 그래서 고민하기 시작했다. 흠! 방법은 몇가지 있다. @JsonIgnore, @JsonBackReference, @JsonManagedReference 혹은 JSON Filter, 와 @Js..
-
spring restdoc 을 만들어 보자카테고리 없음 2023. 4. 19. 09:55
spring restdoc 을 만들어 보자 restdoc을 쓸수도 있을 거 같아서 정리 한다. spring-boot 기준으로 작성 하였다. 기본적인 spring-boot를 안다고 가정하고 작성한다. ... org.springframework.restdocs spring-restdocs-mockmvc 1.0.1.RELEASE .... org.apache.maven.plugins maven-surefire-plugin **/*Documentation.java org.asciidoctor asciidoctor-maven-plugin 1.5.2.1 generate-docs prepare-package process-asciidoc html book ${project.build.directory}/generate..
-
spring java config transaction카테고리 없음 2023. 4. 19. 09:55
spring java config transaction 저번 포스팅에서 rollback이 안되는 문제 있었다. rollback도 안됐지만 service 계층의 영속성도 안됐다(물론 당연한 얘기지만) 해결은 했는데 잘 모르겠다. RootContext를 버리니 잘 된다. 그래서 다시 책을 봤다. 하지만 안보인다.(대충 봐서) 다시 생각이 나서 김영한님의 github를 봤다. RootContext가 없다. 솔직히 아직 잘 모르겠다. root와 servlet context의 대해.. 토비님 책을 다시 읽어야 겠다. servlet이 하나라면 굳이 분리할 필요도 없다고 하는거 같기도 하고.. 아무튼 지금은 잘모르겠다. 일단 나중에 다시 살펴보겠다. 이렇게 바꾸었다. @Configuration @EnableWebMv..
-
spring java config카테고리 없음 2023. 4. 19. 09:55
spring java config 맨날 스프링부트로 공부 하다 보니 자바 config가 기억이 잘 안난다. 그래서 대충 한번 해봤다. 일반 스프링과 jpa 구현체는 하이버네이트로 했다. maven 프로젝트 webapp으로 만들었다. pom.xml에 다음과 같이 추가를 했다. org.springframework spring-context 4.2.5.RELEASE commons-logging commons-logging org.springframework spring-webmvc 4.2.5.RELEASE javax.servlet javax.servlet-api 3.0.1 provided ch.qos.logback logback-classic 1.1.5 org.slf4j jcl-over-slf4j 1.7.16..