Web/JPA
javax.persistence.NoResultException: No entity found for query
에러 로그 문제 원인 @Override public Member findByLoginId(String loginId) { return em.createQuery("select m from Member m where m.loginId = :loginId", Member.class) .setParameter("loginId", loginId) .getSingleResult(); } 쿼리의 결과값이 없을 때가 있을 수 있으니 try catch문으로 NoResultException 예외처리를 해주어야 한다 변경 후 @Override public Member findByLoginId(String loginId) { try{ return em.createQuery("select m from Member m wher..
[Inflearn] JPA - 값 타입(작성전)
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요.
[Inflearn] JPA - 객체지향 쿼리 언어
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. JPA는 다양한 쿼리 방법을 지원한다. 대부분은 JPQL로 해결이 되나, 안될 때 다른 것들을 쓰면 된다. 1. JPQL (표준문법)★ JPA는 엔티티 객체를 대상으로 검색(DB에서 전부 끌어온 다음 검색한다는 뜻) → 생산성↓, DB종속적 필요한 데이터만 DB에서 불러오려면 검색 조건이 포함된 SQL이 필요 : JPQL (DB종속적X) 특징 JPQL은 엔티티 객체를 대상으로 작동하는 객체지향 쿼리언어 SQL과 문법 유사, SELECT, FROM, WHERE, GROUP BY, HAV..
[Inflearn] JPA - 엔티티매핑
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 4.1. 객체와 테이블 매핑 @Entity : 테이블과 매핑할 클래스에 붙인다(필수) JPA가 관리 속성 name : JPA에서 사용할 엔티티 이름을 지정. → 가급적 기본 값(클래스 이름)을 사용하되, 같은 클래스 이름이 있으면 name 지정해 변경 기본 생성자 필수 (public 또는 protected 생성자 붙이기) final 클래스, enum, interface, inner 클래스 사용X 저장할 필드에 final 사용 X @Table : 엔티티와 매핑할 테이블 지정 데이터베이스..
[Inflearn] JPA - 영속성관리
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~ 03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 영속성 컨텍스트 JPA는 영속성 컨텍스트에 엔티티를 저장한다. 영속성 컨텍스트는 "엔티티를 영구 저장하는 환경" 이라는 뜻이다. 영속성 컨텍스트는 논리적인 개념이며 눈에 보이지 않는다. 영속성 컨텍스트 접근하기 엔티티 매니저를 통해서 영속성 컨텍스트에 접근한다. EntityManager.persist(entity);를 하면 엔티티를 영속화한다. (DB에 저장하는게 아님, 영속성 컨텍스트에 저장) 엔티티 매니저 팩토리와 엔티티 매니저 EntityManagerFactory를 통해서 고객..
[Inflearn] JPA 시작하기 + JPQL이란?
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 프로젝트 생성 자바 8이상 (저는 11을 사용하였습니다) 빌드 툴은 Maven을 사용 InteliJ에서 Maven 프로젝트를 새로 생성합니다. 라이브러리 설정파일 pom.xml JPA 하이버네이트, 데이터베이스 드라이버 등 필요한 의존설정을 추가합니다. 자바 11을 사용했을 때 오류 해결방법 : pom.xml에 다음 코드를 추가 javax.xml.bind jaxb-api 2.3.0 JPA 설정하기 - persistence.xml JPA 설정 파일 /META-INF/persistence..
[Inflearn] ORM, JPA란 무엇인가
김영한 강사님의 '자바 ORM 표준 JPA 프로그래밍-기본편' 강의 정리 2022.03.17~03.31 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. JPA와 모던 자바 데이터 저장 기술 Java와 같은 객체지향 언어로 실무 개발을 할 때에는 주로 관계형 DB를 사용한다. 문제는 애플리케이션은 객체지향적으로 개발을 해야하는데, SQL을 계속 날려야 하기 때문에 SQL 중심적인 개발이 되는 것이다. 1. SQL 중심적인 개발의 문제점 SQL 중심적인 개발은 다음과 같은 문제가 있다. 무한반복, 지루한 코드 → SQL 매핑에 많은 시간소요(노가다) 객체 CRUD 코드에 필드가 추가 될 경우 SQL을 일일히 고쳐주어야 한다 → 유지보수성..