Spring boot RestFulClient crudepository实现

Spring boot RestFulClient crudepository实现,spring-boot,crud,resttemplate,Spring Boot,Crud,Resttemplate,我正在使用SpringBoot编写web服务客户端。如何在客户内部使用积存?我必须将Web服务中的数据保存到数据库表中?如何在我的客户机中获得BookRepository的句柄 public interface BookRepository extends CrudRepository<BooksStage, Long> {} RestTemplate restTemplate = new RestTemplate(); ResponseEntity<Books[]

我正在使用SpringBoot编写web服务客户端。如何在客户内部使用积存?我必须将Web服务中的数据保存到数据库表中?如何在我的客户机中获得BookRepository的句柄

public interface BookRepository extends CrudRepository<BooksStage, Long> {}     

RestTemplate restTemplate = new RestTemplate();
ResponseEntity<Books[]> responseEntity = restTemplate.getForEntity("http://localhost:8080/booksList", Books[].class); 
Books[] books=responseEntity.getBody(); 
if(books!=null){
log.info("booksreceived -"+books.length);            
for (Books c : books){
//Insert into database
}
}
公共接口BookRepository扩展了Crudepository{}
RestTemplate RestTemplate=新RestTemplate();
ResponseEntity ResponseEntity=restTemplate.getForEntity(“http://localhost:8080/booksList“、书籍[]类);
Books[]Books=responseEntity.getBody();
如果(书籍!=null){
log.info(“booksreceived-”+books.length);
用于(书籍c:书籍){
//插入数据库
}
}
1)接口BookRepository应标注@Repository。您应该在Web服务客户端类中自动连接接口BookRepository

2) RestTemplate应位于带有@Service注释的Web服务客户端类中

3) 由于您的实体名称是bookstage,所以应该只保存bookstage类型的实体(而不是Books)

@存储库
公共接口BookRepository扩展了Crudepository{
}
@服务
公共类MyWebServiceClient{
@自动连线
私人簿记库簿记库;
public boolean updateSomeBook(){
RestTemplate RestTemplate=新RestTemplate();
响应响应响应响应=
restTemplate.getForEntity(“http://localhost:8080/booksList“、书籍[]类);
bookstage[]books=responseEntity.getBody();
如果(书籍!=null){
log.info(“booksreceived-”+books.length);
书籍(c阶段:书籍){
图书回购保存(c);
}
返回true;
}  
}
@实体
@表(name=“books\u stage”)
公营书展{
@身份证
@列(name=“ID”)
私人长id;
//其他相关领域
}

您实际需要存储什么?您为“bookstage”创建的存储库,但您正在从REST调用接收“Books”对象。需要存储图书信息。实体名称为bookstage。它们是否需要匹配?如何在我的客户机代码中处理bookstage?对于(Books c:Books){//Insert-into-database}
@Repository    
    public interface BookRepository extends CrudRepository<BooksStage, Long> {

}


@Service
public class MyWebServiceClient{

    @Autowired
    private BookRepository bookRepo; 

    public boolean updateSomeBook() {

        RestTemplate restTemplate = new RestTemplate();
        ResponseEntity<BooksStage[]> responseEntity =     
           restTemplate.getForEntity ("http://localhost:8080/booksList", Books[].class); 
        BooksStage[] books=responseEntity.getBody(); 
        if(books!=null){
        log.info("booksreceived -"+books.length);            

        for (BooksStage c : books){
               bookRepo.save(c);
        }
        return true;
    }  
}

@Entity
@Table(name = "books_stage")
public class BooksStage {

    @Id
    @Column(name = "ID")
    private long id;

    //other related fields 

}