본문 바로가기

JPA5

JPA - @OneToOne LazyLoading, 프록시 1.자바 ORM 표준 JPA 프로그래밍 - 220p : 프록시를 사용할 때 외래키를 직접 관리하지 않는 일대일 관계는 지연 로딩으로 설정해도 즉시로딩된다. locker.member는 지연로딩할 수 있지만, member.locker는 지연로딩으로 설정해도 즉시로딩된다. locker가 외래키를 가지고 있는 테이블이니까~ 2. 연관관계의 주인이 아닌 애가 oneToOne에서 lazyLoading을 쓰려고 하면, 상대테이블의 키를 얘가 안 가지고 있으니 프록시를 못 가져와서 lazy로 해놔도 eager로 동작출처 : https://1-7171771.tistory.com/143 [JPA] @OneToOne에서 Fetch 전략을 Lazy로 설정했을때 발생하는 이슈Lazy Loading JPA의 유일한 단점은 사용하.. 2024. 12. 4.
JPA - GenerationType.IDENTITY 단점 Hibernate에서 Batch Insert를 비활성화시킨다. saveAll 해도 insert가 하나씩 나간다는 소리.(헐~) 2024. 12. 4.
JPA - save()와 트랜잭션, Dirty Checking DB를 업뎃하는 시점?save()를 날려도, 트랜잭션 종료시점에 DB가 업뎃된다. 트랜잭션 마지막에 컨텍스트에 존재하는 데이터를 쿼리로 만들어서 날린다. Dirty Checking 기능  트랜잭션 도중 엔티티매니저에 존재하는 객체를 set메소드 등으로 변경했을 때, 이를 감지하고 트랜잭션 커밋 시점에 변경사항을 DB에 반영한다. 따라서 영속상태에 있는 객체는 save문이 따로 필요없다. 하지만 조심해서 써야한다는 거~ 2024. 12. 4.
JPA - 1차, 2차 캐시 영속성 컨텍스트 내부에는 1차캐시, 2차캐시가 있다. 1차 캐시- find를 날릴 때 1차 캐시부터 뒤지고, 1차 캐시에 해당엔티티가 있으면 바로 반환한다. - 1차캐시는 글로벌하지 않다. 엔티티매니저가 특정 쓰레드의 트랜잭션 컨텍스트 내에서 유효하기 때문  2차 캐시 - 2차 캐시는 어플단에서 공유하는 글로벌캐시이다. 활성화된 환경에서 사용 가능하다. 2024. 12. 4.
spring + jpa 날짜패턴 @Column(nullable=false,name="regdate")@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")private Timestamp regDate; 2020. 12. 21.