728x90
반응형

jpa 10

[JPA] 조건절을 포함한 일대다 페이징 최적화

[JPA] 조건절을 포함한 일대다 페이징 최적화 방법 일대다 조인에서 페치조인을 사용하면 페이징을 할 수 없습니다. 우리는 일대다에서 일(1)을 기준으로 페이징하는 것이 목적입니다. 그런데 데이터는 다(N)를 기준으로 row를 생성합니다. 그렇다면 페이징을 하기 위해서는 지연로딩으로 1+N 문제가 발생하는 것을 모르는척 해야할까요? 🤔 일대다 페치조인의 문제 일대다 페치조인을 하면 다(N)를 기준으로 데이터가 생성됩니다. Order OrderItem라고 할 때 다음과 같습니다. 우리는 Order를 기준으로 페이징을 하고 싶습니다….! 😭 조건절을 포함한 일대다 페이징 최적화 방법 목표 Item의 상품명을 조건으로 Order를 Delivery, OrderItem, Item 데이터를 함께 조회하여 페이징 되..

[스프링 + 포트원] 스프링으로 포트원 사용해서 결제 구현 하는 방법(Spring Boot, JPA, PortOne)

[스프링 + 포트원] 스프링으로 포트원 사용해서 결제 구현 하는 방법(Java, Spring Boot, JPA, PortOne) 포스팅 동기 쇼핑몰을 개발하면 결제 부분에서 어떻게 해야할지 막막한 개발자들이 있을 것 입니다. 저 또한 그랬습니다. 😭 결제를 구현하기 위해서는 각 PG사에서 제공하는 API를 사용하여 개발을 진행해야하는데, 만만한 작업이 아니라고 생각합니다… 이러한 문제를 해결하고자 포트원이라는 업체가 등장했습니다. 그런데…. 이마저도 막상 개발하다보면 어려움을 느낍니다… 그리고 구글링을 하다보면 대부분 javascript를 사용하여 구현한 예제들만 있고, Spring을 사용한 예제는 별로 없는 것 같더군요.. ㅎㅎ 저는 이러한 답답함에 조금이라도 도움을 드리고 싶어 글을 작성하게 되었습니..

0+ 스프링 2023.06.03

[JPA] 연관관계 매핑(@ManyToOne, @OneToMany, @OneToOne, @ManyToMany)

[JPA] 연관관계 매핑(@ManyToOne, @OneToMany, @OneToOne, @ManyToMany) 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 앞에서 우리는 연관관계 매핑에 관련해서 찍먹해봤습니다. 이번 포스팅에서는 연관관계..

[JPA] 엔티티 매핑(@Entity, @Table)

[JPA] 엔티티 매핑(@Entity, @Table) 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com JPA에서 가장 중요한 일은 엔티티와 테이블을 정확하게 매핑하는 것 입니다. 따라서 매핑 애노테이션은 반드시 숙지해야 합니다. (매핑(ma..

[JPA] JPA 영속성 컨텍스트(+ flush, 준영속 상태)

[JPA] JPA 영속성 컨텍스트(+ flush, 준영속 상태) 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 2023.02.09 - [0 + 프로그래밍/0 + JPA] - JPA 구동 방식과 간단 실습(CRUD) JPA 구동 방식과 간단..

[JPA] JPA 구동 방식과 간단 실습(CRUD)

[JPA] JPA 구동 방식과 간단 실습(CRUD) 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 2023.02.08 - [0 + 프로그래밍/0 + JPA] - [JPA] JPA 기초 [JPA] JPA 기초 [JPA] JPA 기초 자바 O..

[JPA] JPA 기초

[JPA] JPA 기초 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 이 글은 인프런에서 제공하는 자바 ORM 표준 JPA 프로그래밍 - 기본편 강의를 참고했고 강의 내용을 다시 복습하면서 정리하려는 목적으로 작성합니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., - 강의 소개 | 인프런 www.inflearn.com 과거에는 객체를 DB에 저장하려면 👨🏼‍💻개발자는 JDBC API를 이용하여 SQL을 직접 작성해야 했습니다. public class MemberDAOV1 { // 회원..

[JPA 에러 해결] Named parameter not bound: ~

[JPA] Named parameter not bound: ~ 작성한 쿼리를 테스트 하기위해 테스트 코드 작성한 것을 실행해보았다. //쿼리 public interface FaultJpaRepository extends JpaRepository { @Query(value = "select f from Fault f" + " where f.resolveTime is null" + " and (f.type =: type1 or f.type =: type2)" + " order by f.writeTime desc") List findBmsWarning(@Param("type1") int type1, @Param("type2") int type2); } @Test void findBmsWarningQueryTe..

[JPA 에러 해결] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~ " 오류 해결

문제 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a ~" 신규 프로젝트를 진행하던 도중 위와 같은 오류가 발생했다.. 😮 스프링 버전 문제인가 생각해서 버전을 변경해봐도 같은 오류가 발생했다. 원인 분석 DB 예약어? 무엇인가에 홀린듯이 계속 검색을 해봤지만, Entity에 DB 예약어를 사용한 경우에 발생한 경우가 대부분이었다. 정말로 예약어 문제인지 확인하기 위해서 간단하게 Entity를 새롭게 만들어봤다. @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long..

JPA 다중 DataSource 설정

스프링 부트를 이용하면 application.properties 또는 application.yml에 설정하여 db에 쉽게 연결 할 수 있다. 하지만 n개의 db에 접속하기 위해서는 application.properties, application.yml에 설정한 것에 따라 bean에 직접 등록해야한다. 글쓴이는 yml을 이용하여 2개의 mariadb에 연결하는것을 포스팅 하겠습니다. 1. application.yml 설정 spring: jpa: hibernate: ddl-auto: validate naming: physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl properties: hibernate: #..

728x90
반응형