본문 바로가기
728x90
반응형

Study/JPA17

[JPA] @JsonIgnore, @JsonManagedReference, @JsonBackReference 순환 참조 발생 JPA는 디폴트로 맵핑된 데이터에 대해 FetchType.LAZY(게으른 불러오기)를 사용하게 된다. 예를 들어, User라는 Entity와 Acoount라는 Entity가 서로 양방향 참조 (1 :N)를 하고 있다고 해보자. public class User{ @Id privte long user_id; ..생략 @OneToMany(mappedBy = "user") private List accounts; } public class Account{ @Id private long id; @ManyToOne @JoinColumn(name = "user_id") private User user; } JUtil을 통한 테스트 에서는 AccountRepository를 사용하여 return된 Lis.. 2022. 3. 26.
[JPA] DTO, Domain(Entity) 유튜브 강의를 듣다가 Entity를 Client, Controller, Service단을 모두 사용하는 것을 보고 Entity는 Client, Controller단에서 쓰이면 안된다는 것을 본적이 있어서 DTO, Entity의 관계에 대해 찾아봤다. (이미 강의를 들으면서 작성한 코드는 모두 Entity로 접근을 하였기 때문에 나중에 DTO로 바꾸는 리팩토링 작업을 한꺼번에 행봐야겠다.) 기존 이미지 수정. Entity는 Controller, Client단에서 쓰이면 직접 쓰이면 좋은 설계가 아니다. Entity를 DTO로 바꿔 사용해야한다. Entity DB에 저장하기 위해 유저가 정의한 클래스 - Domain 실제 DB테이블과 매칭 RDBMS에서 Table을 객체화 시킨것 이라고 생각... sette.. 2022. 3. 26.
Spring Data JPA에서 Query를 사용하는 방법 Spring JPA Data Doc에서는? https://docs.spring.io/spring-data/jpa/docs/2.3.3.RELEASE/reference/html/#jpa.repositories Spring Data JPA - Reference Documentation Example 108. Using @Transactional at query methods @Transactional(readOnly = true) public interface UserRepository extends JpaRepository { List findByLastname(String lastname); @Modifying @Transactional @Query("delete from User u where u.act.. 2022. 3. 15.
[JPA] Executing an update/delete query Executing an update/delete query; nested exception is javax.persistence.TransactionRequiredException: Executing an update/delete query @Modifying @Query(value = "delete from tb_specimen where registry_id=:registryId", nativeQuery=true) void deleteBySpecimen(@Param("registryId")Long registryId); } 실행 시 문제가 발생한다. ​ UPDATE, DELETE 경우 @Transactional 어 로테이션을 추가해주지 않으면 문제가 발생하기 때문에 아래와 같이 추가해주어야 한다. @.. 2022. 3. 13.
728x90
반응형