當我嘗試使用findByIdMongoRepository 中傳入的字串的方法時,映射器出現錯誤,導致沒有回傳結果,即使存在這樣的結果。
這是我的專案的結構和檔案:
物體 Post.java
@Document("posts")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Post {
@Id
private String Id;
private Integer userId;
private String content;
private Integer likes;
private Integer dislikes;
}
存盤庫 PostRepository.java
public interface PostRepository extends MongoRepository<Post, String> {
}
服務 PostService.java
@Service
public class PostService {
@Autowired
private PostRepository repository;
public List<Post> getPosts() {
return repository.findAll();
}
public Post getPostById(String id) {
return repository.findById(id).orElse(null);
}
public Post savePost(Post post) {
return repository.save(post);
}
public void deletePostById(String id) {
repository.deleteById(id);
}
}
控制器 PostController.java
@RestController
@RequestMapping("/posts")
public class PostController {
@Autowired
private PostService service;
@Autowired
private StreamBridge streamBridge;
@GetMapping("")
public List<Post> getPosts() {
return service.getPosts();
}
@GetMapping("/{postId}")
public Post getPostById(@PathVariable String postId) {
return service.getPostById(postId);
}
@PostMapping("/createPost")
public Post createPost(@RequestBody Post post) {
streamBridge.send("postCreated-out-0", post.getUserId());
return service.savePost(post);
}
@DeleteMapping("/{postId}")
public void deletePostById(@PathVariable String postId) {
service.deletePostById(postId);
}
}
當我嘗試運行GETaslocalhost:9192/posts/62a76719145e644e5b640327或 DELETElocalhost:9192/posts/62a76719145e644e5b640327時,62a76719145e644e5b640327與 MongoDB 中檔案中的條目相關聯的正確 id 在哪里,我在控制臺中收到此錯誤:
[nio-9192-exec-2] o.s.d.mongodb.core.convert.QueryMapper : Could not map 'Post.id'. Maybe a fragment in 'String' is considered a simple type. Mapper continues with id.
我還嘗試使用@Query覆寫默認 findById 的注釋撰寫自定義查詢,如下所示:
@Override
@Query("{ 'id' : ?0}")
Optional<Post> findById(String s);
我仍然得到同樣的錯誤。我使用的是spring-boot-starter-data-mongodb2.7.0 版本,并且在本地運行 MongoDB。
編輯:忘了提到使用該deleteById方法時會發生同樣的事情
uj5u.com熱心網友回復:
我認為問題出在你用大寫命名的識別符號中我用 id 替換帖子檔案中的Id?試一試......它會作業
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/491626.html
標籤:爪哇 春天 mongodb 弹簧靴 弹簧数据-MongoDB
