[SPRING] 스프링 데이터 나머지에있는 동일한 엔티티에 대한 다중 리포지토리
SPRING스프링 데이터 나머지에있는 동일한 엔티티에 대한 다중 리포지토리
Spring Data Rest를 사용하여 동일한 JPA 엔티티에 대해 서로 다른 두 개의 저장소를 게시 할 수 있습니까? 두 저장소에 서로 다른 경로와 rel-names를 주었지만 두 가지 중 하나만 REST endpoint로 사용할 수 있습니다. 내가 두 개의 저장소를 가지고있는 이유는 그 중 하나가 엔티티의 기본 필드 만 보여주는 발췌입니다.
해결법
-
==============================
1.끔찍한 부분은 엔티티 당 1 개의 스프링 데이터 저장소 (@RepositoryRestResource) 만 가질 수있을뿐만 아니라 일반 JPA @ Repepitory (CrudRepository 또는 PagingAndSorting과 같은)가 있으면 스프링 데이터 나머지 하나와 상호 작용할 수도 있다는 것입니다 지도의 키는 엔터티 자체 임). 하나 또는 다른 임의의로드를 디버깅하는 꽤 많은 시간을 잃어 버렸습니다. 적어도 이것이 값을 무시하려고 할 때지도의 키가 이미 있으면 스프링 데이터의 하드 제한이 남아 있으면 적어도 예외가 발생할 수 있다고 생각합니다.
끔찍한 부분은 엔티티 당 1 개의 스프링 데이터 저장소 (@RepositoryRestResource) 만 가질 수있을뿐만 아니라 일반 JPA @ Repepitory (CrudRepository 또는 PagingAndSorting과 같은)가 있으면 스프링 데이터 나머지 하나와 상호 작용할 수도 있다는 것입니다 지도의 키는 엔터티 자체 임). 하나 또는 다른 임의의로드를 디버깅하는 꽤 많은 시간을 잃어 버렸습니다. 적어도 이것이 값을 무시하려고 할 때지도의 키가 이미 있으면 스프링 데이터의 하드 제한이 남아 있으면 적어도 예외가 발생할 수 있다고 생각합니다.
-
==============================
2.대답은 다음과 같습니다. 엔티티 당 하나의 저장소 만 가능합니다.
대답은 다음과 같습니다. 엔티티 당 하나의 저장소 만 가능합니다.
-
==============================
3.따라서이 질문에 직접 답하는 것은 아니지만 근본적인 문제를 해결하는 데 도움이 될 수 있습니다.
따라서이 질문에 직접 답하는 것은 아니지만 근본적인 문제를 해결하는 데 도움이 될 수 있습니다.
엔티티 당 하나의 저장소 만 가질 수 있지만 테이블 당 여러 엔티티를 가질 수 있습니다. 따라서 테이블 당 여러 개의 리포지토리가 있습니다.
내가 작성한 코드에서, 자동 생성 된 id와 미리 설정된 id를 가진 두 개의 엔티티를 생성해야했지만, 둘 다 동일한 테이블을 가리키고 있습니다.
@Entity @Table("line_item") public class LineItemWithAutoId { @Id @GeneratedValue(generator = "system-uuid") @GenericGenerator(name = "system-uuid", strategy = "uuid") private String id; ... } @Entity @Table("line_item") public class LineItemWithPredefinedId { @Id private String id; ... }
그런 다음 각각에 대한 저장소가 있습니다.
public interface LineItemWithoutId extends Repository<LineItemWithAutoId,String> { ... } public interface LineItemWithId extends Repository<LineItemWithPredefinedId,String> { ... }
게시 된 문제의 경우 두 개의 개체가있을 수 있습니다. 하나는 모든 것에 게 게터와 세터와 함께 완전한 개체가 될 것입니다. 다른 하나는 엔티티 일 것이고, 모든 것에 대한 세터가 있지만 공개하려는 필드의 게터 만 있습니다. 이게 말이 돼?
from https://stackoverflow.com/questions/36112451/multiple-repositories-for-the-same-entity-in-spring-data-rest by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] spring mvc에서 리다이렉트 (redirect) 한 후 컨트롤러에서 pass 매개 변수를위한 방법은 무엇입니까? (0) | 2019.03.19 |
---|---|
[SPRING] Spring MVC의 @RequestBody 매개 변수로 @Valid를 어떻게 사용합니까? (0) | 2019.03.18 |
[SPRING] 차이가 액세스 = "permitAll"과 필터 = "없음"? (0) | 2019.03.18 |
[SPRING] 로드 된 모든 Spring 빈을 인쇄하십시오 - Spring Boot (0) | 2019.03.18 |
[SPRING] java.lang.ClassNotFoundException : org.hibernate.engine.SessionFactoryImplementor (0) | 2019.03.18 |