일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring boot redis
- vue.js
- Redis Sentinel
- spring cloud
- jmeter
- Docker Compose
- MySQL
- Hibernate
- mybatis
- coalesce
- cassandra
- netflix oss
- WebLogic
- docker compose mysql
- argo cd
- RabbitMQ
- docker-compose
- grafana
- redis
- Airflow
- ChannelPipeline
- KAFKA
- Netty
- JPA
- spring boot
- docker
- Selenium
- Spring Open Feign
- weblogic 10
- QueryDSL
- Today
- Total
목록Spring/Spring Data JPA (26)
IT.FARMER
Hibernate 사용시 주의점 Hibernate: No default constructor for entity Inner Classhttps://stackoverflow.com/questions/28053135/hibernate-no-default-constructor-for-entity-inner-class 내부 클래스 이용시 하이버네이트 내부에서 프록시(리플레케이션)으로 기본 생성자를 콜 한다. 이때 내부 클레스를 사용 하게 되면 실제로 내부클레스는 디폴트 생성자가 없기때문에 에러가 나가 된다. 이에 문제를 해결하기 위해서는 정적 내부 클레스를 이용한다. 해결 방안 : 정적 내부클레스 이용 @Embeddablepublic class ClassName { @EmbeddeId public static ..
@OneToOne 양방향 매핑 주키(PK)공유 두테이블에서 같은 키를 PK로 이용한다. A -> PK -> B -> FK,PK *부모객체메인객체 @OneToOne 선언영속상태 정의부모객체에 양방향 매핑의 mappedBy를 설정하여 외례키 컬럼이 생성되지 않도록 한다. @Entity@JsonIgnoreProperties(ignoreUnknown = true)public class Users implements Serializable { @Id private String email; @OneToOne(mappedBy = "users" , cascade = { CascadeType.PERSIST ,CascadeType.MERGE , CascadeType.REMOVE // 사용자 삭제시 FCM Key 함께 삭제..
ORM Jpa @ResponseBody 재귀 memory error ORM을 이용하다보면 @ResponseBody 에서 자동으로 마샬링 언마샬링시에 무한 재귀에 빠지게 된다. 이때 부모자식과 같은 관계를 갖는 객체는 원하는 형태에 따라 다음과 같은 @Annotation을 붙여 주어야 한다. @JsonBackReference 는 순환참조의 역할을 끝어주게 되며, 해당 객체가 마샬릴될때 대상에서 제외 된다. 즉 양방향의 JSON 마샬링을 할 수 없는 단점 존재한다. 양방양이 가능한 @JsonIdentityInfo(http://springquay.blogspot.kr/2016/01/new-approach-to-solve-json-recursive.html) 있지만 같은 객체에대한 마샬링은 해주지 않고 참조만 ..
JPA 에서 Forin Key 를 생성해 보자 클레스 다이어 그램으로 구조를 한눈에 먼저 확인하자 MediaManagementEntity 미디어 정보를 가진 엔티티 클레스 CampaignEntity 캠페인 정보를 가진 클레스 미디어 정보를 가진 클레스와 FK를 맺어 미디어 정보를 확인한다. 애드그룹 엔티티와 1:N 관계 AdGroupEntity 애드그룹 정보를 가진 클레스 캠페인 엔티티와 N:0..1 관계 @JoinColumn @JoinColumn 을 이용하여 조인 한다. name="자식 테이블의 컬럼 명, 자기 자신의 컬럼명" referencedColumnName="조인 대상 부모의 컬럼명" @JoinColumn (name="concertOrderId", referencedColumnName="conc..
QueryMethod (Repository 사용자 변형) https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods PK값이 두개일때 FK가 걸려있는 컬럼을 이용해서 모두 지우려 할경우 JPA 에서는 데이터를 조회 한후 삭제 하기 때문에 삭제할 데이터가 없다는 오류메세지를 주고, 익셉션이 발생한다, 이때 사용자 변형 쿼리를 이용해서 사용하면 해결 가능하다. findByUserId(fieldName) deleteByUserIdAnd{fieldName} @Eembedable 로 Muilti PK 사용시 PK값을 두개를 사용하기 때문에 @Embededable , Id 를 이용하는데 이때는 {PKCla..
http://www.javabeat.net/embeddable-embedded-embeddedid-jpa-annotations/http://uaihebert.com/tutorial-jpa-composite-primary-key/http://ldg.pe.kr/framework_reference/hibernate_annotations/ver3.1beta3/html/entity.html * Criteria 예시 블로그http://antop.tistory.com/30 @Entity @Getter @Setter @Table(name = "campaign") @ToString( exclude = "mediaManagementEntity") public class CampaignEntity implements Ser..
* FindByUserNameAndUserId... 안전한 조건문의 쿼리 작성을 위하여. QueryDSL을 사용해보자.좀더 직관적으로도 보이는것같다. m2-apt plugins 설치. http://arahansa.github.io/docs_spring/jpa.html : JPA 번역문서http://www.querydsl.com/ : QueryDSL 지원
ORM 을 EJB3.0을 해볼때 개념을 익히고 사용해 보았다.하지만 그때는 ORM 개념이 나온지 얼마 되지 않았었고 JPA 관련 자료도 지금과 같이 많지 않았다.단순히 그시절 EJB를 사용 함에 있어 다소 무겁고 설정이 많다고하여 3.0으로 오면서 경령화 시킨 POJO 개념도 들어갔고ORM 개념을 도입하여 EJB 3.0 과 함께 사용 하였다. 지금은 J2EE 모델에만 국한되지 않고 범용으로 만들어져 있어 범용으로 사용 가능 하다. 각 모델을 DBMS와 맵핑시켜 엔티티 모델로 사용해보자 JPA ?JPA(Java Persistence API)는 EJB 2.x에서 DB에 접근하기 위해 사용되었던 Entity Bean을 JSR-220(Enterprise JavaBeans 3.0)에서 대체하는 새로운 기술이다. ..