JPA15 최범균 Spring Data JPA 기초 Spring Data JPA 시작하기 https://www.youtube.com/watch?v=1Q3Qtd5HZy4 사용법 spring-boot-starter-data-jpa 의존스프링 부트 설정엔티티 단위로 Repository 인터페이스를 상속 받은 인터페이스 생성또는 그 하위 인터페이스지정한 규칙에 맞게 메서드 추가save(), findById(), delete() 등 규칙에 맞게 메서드 정의https://charactermail.tistory.com/441필요한 곳에 해당 인터페이스 타입을 주입해서 사용 Spring Data JPA 02 리포지터리 메서드 작성 규칙 식별자로 엔티티 조회 메서드findByIdT findById(ID id)없으면 nullOptional findById(ID id)없.. 2024. 9. 25. @Transactional 어노테이션 관련 인상깊게 정보 본 블로그 spring-data-jpa에서 제공하는 JpaRepository의 기본 구현체는 SimpleJpaRepository이고, class 위에 기본적으로 @Transactional(readOnly = true)로 설정되어 읽기 트랜잭션으로 설정되어 있다. 그런데 save, delete 동작 수행하는 메서드는 트랜잭션이 적용되어야 하므로 @Transactional 어노테이션이 붙어 있는 것을 확인할 수 있다. https://cupeanimus.tistory.com/102 @Transactional 옵션을 사용하지 않는다면? 일단 기본적으로 @Transactional 에서 많이 사용되는 readOnly 옵션의 default 는 false이다. 때문에 서비스레벨에서 해당 메서드의 Transaction 관리를 하려.. 2023. 8. 29. 스프링 REST API 생성 원칙 1. API를 만들 때는 Request로 전달 받는 인자의 파라메터로 Entity를 그대로 사용하지 않고, 해당 API에 필요한 정보만을 전달받는 전용 DTO 클래스를 만드는 것이 바람직하다. 그러면 API 스펙 변경에 유연하게 대처할 수 있고, 값들의 Validation 조건 거는 것에도 용이하다. 2. 응답 규격의 확장성을 위해서 Generic 클래스 활용 지연 로딩과 조회 성능 최적화 작년 8월에 동일한 내용 이미 정리 했었었음. 뒤늦게 확인함 https://charactermail.tistory.com/427 근본적으로 Entity를 직접 Response(외부 노출) 하는 경우는 지양해야 하는 방법이다 그럼에도 Entity를 노출하는 경우 주의사항을 보자면 1. 양방향 연관관계가 걸린 곳은 한 곳.. 2023. 6. 13. JPA Entity에 index 거는 방법 @Table 어노테이션안에 아래처럼 @Index 부분 참조해서 작성하면 인덱스 자동으로 걸리게 됨 @Entity @Table(name = "\"comment\"", indexes ={ @Index(name = "post_id_idx", columnList = "post_id") }) @Getter @Setter //@SQLDelete(sql = "UPDATE \"comment\" SET deleted_at = NOW() where id=?") //@Where(clause = "delete_at is NULL") public class CommentEntity { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Integer id; @ManyToO.. 2022. 11. 26. 이전 1 2 3 4 다음