현재 SpringData REST를 사용하는 Spring Boot 애플리케이션이 있습니다. 다른 도메인 엔터티와 관계 가있는 도메인 엔터티 Post
가 있습니다 . 이러한 클래스는 다음과 같이 구성됩니다.@OneToMany
Comment
Post.java :
@Entity
public class Post {
@Id
@GeneratedValue
private long id;
private String author;
private String content;
private String title;
@OneToMany
private List<Comment> comments;
// Standard getters and setters...
}
Comment.java :
@Entity
public class Comment {
@Id
@GeneratedValue
private long id;
private String author;
private String content;
@ManyToOne
private Post post;
// Standard getters and setters...
}
SpringData REST JPA 저장소는 다음의 기본 구현입니다 CrudRepository
.
PostRepository.java :
public interface PostRepository extends CrudRepository<Post, Long> { }
CommentRepository.java :
public interface CommentRepository extends CrudRepository<Comment, Long> { }
애플리케이션 진입 점은 표준의 간단한 Spring Boot 애플리케이션입니다. 모든 것이 구성 재고입니다.
Application.java
@Configuration
@EnableJpaRepositories
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration
public class Application {
public static void main(final String[] args) {
SpringApplication.run(Application.class, args);
}
}
모든 것이 올바르게 작동하는 것 같습니다. 응용 프로그램을 실행하면 모든 것이 올바르게 작동하는 것처럼 보입니다. 다음 http://localhost:8080/posts
과 같이 새 Post 객체를 게시 할 수 있습니다 .
몸:
{"author":"testAuthor", "title":"test", "content":"hello world"}
결과 http://localhost:8080/posts/1
:
{
"author": "testAuthor",
"content": "hello world",
"title": "test",
"_links": {
"self": {
"href": "http://localhost:8080/posts/1"
},
"comments": {
"href": "http://localhost:8080/posts/1/comments"
}
}
}
그러나 GET을 수행 http://localhost:8080/posts/1/comments
하면 빈 개체가 {}
반환되고 동일한 URI에 주석을 게시하려고하면 HTTP 405 Method Not Allowed가 표시됩니다.
Comment
자원 을 만들고 이것과 연결 하는 올바른 방법은 무엇입니까 Post
? http://localhost:8080/comments
가능한 경우 직접 게시하는 것을 피하고 싶습니다 .