- springboot
- ORM
- 자바
- spring security 6
- 프로그래머스
- jpa
- session
- 스프링
- nginx
- sql
- Git
- Docker
- 스프링부트
- @transactional
- spring boot
- Django
- PYTHON
- join
- spring mvc
- AWS
- SSL
- 데이터베이스
- spring
- 문자열
- DI
- select
- java
- string
- 1차원 배열
- mysql
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록jpa (10)
개발하는 자몽
에러 원인정말... 바보같은... 실수였다... 오류가 났던 테스트 코드는 아래와 같다. ... @PersistenceContext EntityManager em; @Test void test() { UserEntity userEntity = UserEntity.builder() .nickname("test") .email("test@example.com") .build(); userEntity = userRepository.save(userEntity); userService.sumTotalAmount(userEntity, 10_000L); ..
@Embeddable, @Embedded`@Embeddable` 애노테이션이 있는 클래스는 기본 생성자가 필요함임베디드 타입은 값 타입에 속하는데, 이러한 값 타입은 여러 엔티티에서 공유하면 side effect를 일으킬 수 있다.따라서 불변 객체(Immutable Object)로 설정하여 이러한 문제를 방지하는 것이 좋다.`@Embeddable` 클래스에 수정자(setter)를 생성하지 않고 생성자만 두어, 생성자로만 값을 설정하게 한다수정자가 없으므로 해당 임베디드 값 타입을 필드로 갖고 있는(@Embedded) 엔티티에서는 특정 값만 수정하는 것이 불가능. 객체를 새로 생성해야 함. public static void main(String args[]) { Address address = new..
이 글은 아래 강의를 바탕으로 공부한 내용을 정리하는 글입니다. 자바 ORM 표준 JPA 프로그래밍 - 기본편 | 김영한 - 인프런김영한 | JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다., 실무에서도www.inflearn.com 🔖목차🔖영속성 컨텍스트엔티티의 상태1차 캐시엔티티 등록 - 쓰기 지연변경 감지(Dirty Checking)SUMMARY 영속성 컨텍스트엔티티를 영구 저장하는 환경논리적 개념, 눈에 보이지 않음`EntityManager`를 통해서 접근`EntityManager`는 엔티티를 조작하고 데이터베이스와의 통신을 수행하는 인터페이스. 엔티티의 영..
findById() 메서드로 L엔티티를 조회하고 가져온 엔티티의 getter 메서드에 접근했더니 아래와 같은 에러가 발생했다. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 위 에러는 엔티티는 잘 가져왔지만, 이후 해당 엔티티를 통해 어떤 메소드를 호출하려고 할 때 이미 영속성 컨텍스트가 닫혀서 지연로딩을 할 수 없을 때 발생한다. 상황 application.yml ... spring.jpa.open-in-view=false ... spring.jpa.open-in-view 옵션에 관하여는 이 글을 참고하자 ( https://velog.io/@dnwlsrla40/JPA-Open-In-Vi..
백기선님 유튜브 영상 백기선 님의 해당 유튜브 영상을 보고 작성한 글입니다. 뭐가 문제일까? Goal Book 엔티티와 BookStore 엔티티를 양방향 관계를 맺도록 하기 실행 Book 엔티티와 BookStore 엔티티가 아래 코드와 같을 때 아래 테스트 코드를 실행해 보자. Book Entity import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import jakarta.persistence.ManyToOne; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Bo..
오류 질문을 받았는데, 내가 지난번에 겪었던 에러와 유사한 것 같아서 정리해두려고 한다. 상황 API에 요청을 하고 해당 정보를 DB에 담는 것까지는 에러 없이 진행이 된다. 하지만 저장한 정보를 조회하면 아래와 같은 에러가 콘솔창에 나타난다. Postman에서는 500 에러라고 알려준다. (오류 전문이 아닌 중요한 부분만 가져왔다) 2023-02-13T09:52:21.966+09:00 ERROR 71150 --- [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request process..
상황 서버를 켜고 질문 등록을 해보는데 500 에러가 발생했다. 혹시나 해서 답변 등록도 해봤는데 똑같이 500 에러가 발생했다. 이 에러는 서버의 문제라서 바로 콘솔창에서 에러를 확인했다. 연관 관계 ERD에 다른 필드는 적지 않고 PK와 FK만 작성했다. 발생한 에러와 원인 고찰 JdbcSQLIntegrityConstraintViolationException: Referential integrity constraint violation 오류 내용을 보면 Referential integrity constraint violation(참조 무결성 제약 조건 위반)이 발생함을 알 수 있다. 참조 무결성 제약 조건을 위반했다고 나오니 의심 가는 부분은 @ManyToOne을 적용한 FK 뿐이었다. 오류가 난 h..
H2 인메모리 DB를 사용하면 알아서 스키마를 초기화하지만, 별도의 DB를 사용하면 초기화하지 않는다. 따라서 application.properties에 관련 설정을 작성해야 한다. Hibernate 전략 spring.jpa.generate-ddl 애플리케이션 시작 시 스키마 초기화 여부를 지정하며 기본값은 false다. spring.jpa.hibernate.ddl-auto DB 초기화 전략 옵션이다. none : DDL 핸들링 작업을 수행하지 않는다. create : 기존에 존재하는 스키마를 삭제(drop)하고 새로 생성한다. create-drop : 스키마를 생성하고 애플리케이션이 종료될 때 삭제(drop)한다. update : 기존의 스키마를 유지하며 JPA에 의해 변경된 부분만 추가한다. vali..
이 글은 아래 강의를 기반으로 작성됩니다. [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런... www.inflearn.com 다음 순서로 진행한다. 스프링 통합 테스트 스프링 JdbcTemplate JPA 스프링 데이터 JPA 본래 강의 순서대로라면 "H2 데이터베이스 설치"와 "순수 JDBC"가 있어야 하는데 데이터베이스 설치를 따로 다룰 필요는 없어 보이고, 순수 JDBC는 요즘 실무에서 쓰지 않는 걸로 알고 있기 때문에 넘긴다. 스프링 통합 테스트 이전까지 했던 테스트는 전혀 스프링과 관련이 없는 순수한 Java 코드로..
순서 영속성(Persistence) Persistence Framework ORM SQL Mapper JDBC JPA MyBatis 영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라고 사라지지 않는 데이터의 특성 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램이 종료되면 모두 잃어버린다. 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구적으로 저장하여 영속성을 부여한다. 즉, 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터를 말한다. the characteristic of data that outlives the execution of the program that created it: which is achieve..