jpa

TIL

[TIL][SQL] @Modifying 어노테이션

❓@Modifying 어노테이션이란? @Modifying(clearAutomatically = true, flushAutomatically = true) @Transactional @Query("UPDATE Restaurant r SET r.averageRating = :averageRating WHERE r.id = :restaurantId") void updateAverageRating(@Param("restaurantId") Long restaurantId, @Param("averageRating") double averageRating); 수정 쿼리를 수행하는 메서드에 붙인다. JPA에서 SLECT 쿼리가 아닌 UPDATE, DELETE, INSERT 등과 같은 수정 작업을 수행하는 메서드에 대한..

Spring

[Spring][JPA] ORM & JPA

ORM 장점 객체 지향적이기 때문에 개발자가 비즈니스 로직 및 코드 자체에 집중할 수 있다. 관념적 코드(Boilerplate code)가 없거나 적어진다. 코드의 재사용, 유지보수의 편리성이 증대된다. DBMS의 종속성이 줄어든다. 단점 N+1 문제 등 해결해야할 과제가 있다. 생성되는 쿼리 속도등의 문제가 있다. 설계과 잘못되면 일관성이 무너지거나 성능 저하의 문제가 있다. JPA Java의 ORM 표준 기술 JPA를 사용해야 하는 이유 생산성 향상 유지보수성 향상 패러다임의 불일치 해결 성능 쿼리에 비해 성능이 느려지는 경우도 있어 단순히 성능이 좋아지는 것은 아니다. 하지만, 동일한 쿼리를 캐싱하는 기능 등 성능이 개선되는 기능이 있다. 데이터 접근의 추상화와 벤더 독립성 JPA의 구현체 Hibe..

TIL

JPA 에서 복합키 사용하기

id가 겹치고 mediaType이 다른 경우가 있어 id와 mediaType을 모두 primary Key로 사용하려고 하였다. 이를 위해 복합키를 사용하기로 하였다. 복합키 사용방법 1. @IdClass @Data public class ContentKey implements Serializable { private long id; private String mediaType; } @Data @Entity @Table(name = "content") @IdClass(ContentKey.class) public class Content { @Id private long id; @Id private String mediaType; } 2. @Embeddable @Data @Embeddable public c..

dbssk
'jpa' 태그의 글 목록