[SPRING] Spring의 @RepositoryRestResource REST API를 통해 다 - 대 - 다 관계에 요소를 추가하는 방법?
SPRINGSpring의 @RepositoryRestResource REST API를 통해 다 - 대 - 다 관계에 요소를 추가하는 방법?
@RepositoryRestResource 인터페이스를 사용하여 두 개의 상당히 간단한 엔티티간에 다 대다 관계를 만드는 방법을 정확히 파악하는 데 문제가 있습니다.
예를 들어, 다음과 같이 간단한 부모 - 자식 엔터티 관계가 있습니다.
@Entity
public class ParentEntity {
@Id
@GeneratedValue
private Long id;
@ManyToMany
private List<ChildEntity> children;
}
@Entity
public class ChildEntity {
@Id
@GeneratedValue
private Long id;
@ManyToMany(mappedBy="children")
private List<ParentEntity> parents;
}
내 리포지토리는 바닐라 Spring @RepositoryRestResource HATEOS API를 사용하고 있습니다.
@RepositoryRestResource(collectionResourceRel = "parents", path = "parents")
public interface ParentRepository extends PagingAndSortingRepository<ParentEntity, Long> {
}
@RepositoryRestResource(collectionResourceRel = "children", path = "children")
public interface ChildRepository extends PagingAndSortingRepository<ChildEntity, Long> {
}
POST를 사용하여 개별 ParentEntity 및 ChildEntity를 만들었지 만 내장 인터페이스를 사용하여 두 인스턴스 간의 관계를 PUT / PATCH하는 방법을 파악할 수 없습니다.
http : // localhost : 8080 / api / parents / 1 / children과 같은 JSON을 보내기 위해 PUT을 사용할 수 있어야하지만 지금까지는 작동하는 구조체를 찾을 수없는 것 같습니다.
해결법
-
==============================
1.여기에 대한 답변을 찾았습니다 : Spring 데이터 나머지에서 참조 객체를 업데이트하는 방법?
여기에 대한 답변을 찾았습니다 : Spring 데이터 나머지에서 참조 객체를 업데이트하는 방법?
JSON 대신 "Content-Type : text / uri-list"를 사용하면 PUT을 사용하여 리소스를 컬렉션에 "추가"하고 URI를 전달할 수 있습니다. DELETE로 자원을 제거 할 수 있습니다.
일부 파고 들자 Spring 설명서에 다음과 같은 내용이 있음을 발견했다. http://docs.spring.io/spring-data/rest/docs/2.2.0.RELEASE/reference/html/#repository-resources.association-resource .
-
==============================
2.필자는 텍스트 / URI 목록 형식의 콘텐츠 유형이 항상 싫어서 몇 가지 조사를했으며 문서화되지 않은 JSON 형식도 사용할 수 있다고 판명되었습니다.
필자는 텍스트 / URI 목록 형식의 콘텐츠 유형이 항상 싫어서 몇 가지 조사를했으며 문서화되지 않은 JSON 형식도 사용할 수 있다고 판명되었습니다.
{ "_links":{ "1":"/555", "1":"/556" } }
링크의 rel은 빈 문자열을 제외하고 모두 같을 수 있습니다. 모두 같을 수 있습니다. 링크 부분은 참조 된 객체의 자체 링크에서 전체 URL이 될 수 있지만 URL의 마지막 부분이면 충분합니다. (forseslash + id)
from https://stackoverflow.com/questions/26259474/how-to-add-elements-in-a-many-to-many-relationship-via-springs-repositoryrestr by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] spring aspectj - 외부 항아리를 짜는 컴파일 시간 (0) | 2019.04.11 |
---|---|
[SPRING] STS를 사용하여 새로운 웹 어플리케이션 프로젝트를 생성 할 때 Spring MVC 프로젝트를 찾을 수 없습니까? (0) | 2019.04.10 |
[SPRING] @Component와 @Autowired를 사용할 때 스프링 빈 원시 속성? (0) | 2019.04.10 |
[SPRING] 봄 부팅시 Aop 관련 문제 (0) | 2019.04.10 |
[SPRING] Spring 애플리케이션의 예외 처리 위치 (0) | 2019.04.10 |