2017-05-01 11 views
1

アドバイスが必要です。私はSpringのフレームワークにはあまり適していません。私はあなたに簡単な質問をしたいだけです。@RequestBodyアノテーションの下で1フィールドだけオブジェクトを取得するにはどうすればよいですか?

私は、サーバー側で次のPOJOオブジェクトを持っている:

@Entity 
@Table(name = "AutoRate") 
public class AutoService { 

    public AutoService() { 
    } 

    @Id 
    @GeneratedValue(generator = "increment") 
    @GenericGenerator(name = "increment", strategy = "increment") 
    private long id; 

    @Column(name = "serviceName", nullable = false) 
    private String serviceName; 

    @Column(name = "imageURL", nullable = false) 
    private String imageURL; 

    @Column(name = "mapCoordinate", nullable = false) 
    private String mapCoordinate; 

    @Column(name = "websiteURL", nullable = false) 
    private String websiteURL; 

    @Column(name = "phoneNumber", nullable = false) 
    private String phoneNumber; 

    @JsonManagedReference 
    @OneToMany(mappedBy = "autoService", fetch = FetchType.EAGER, cascade = CascadeType.PERSIST) 
    private List<Service> services = new ArrayList<Service>();} 

それはすべてのgetterとsetterが含まれています。私はただのスペースを節約したい。

次へ:私はクライアントのためにデータベースから1つのオブジェクトを取得したいと思います。これはデータベースの変数serviceNameだけを使用して行いたいです。

私は次のコントローラのメソッドがあります:クライアントからの呼び出しの後

@RequestMapping(value = "/getAutoService", method = RequestMethod.GET) 
    @ResponseBody 
    public AutoService getAutoService(@RequestBody String serviceName){ 
     AutoService autoService = dataBaseService.getByName(serviceName); 
     return autoService; 
    } 

を私は次のエラーを取得:

117899 [http-apr-8080-exec-1] WARN org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public com.webserverconfig.user.entity.AutoService com.webserverconfig.user.controller.ServiceController.getAutoService(com.webserverconfig.user.entity.AutoService) 

は私が@RequestBody注釈間違っを使用していたと思います。

誰でもアドバイスをいただけますか?

答えて

2

HTTP文字列ではなくクエリ文字列にデータを渡すGETメソッドを使用していますが、POSTメソッドはその本文にHTTPメッセージを渡します。

したがって、@RequestBody注釈を使用するのは正しくありません。代わりに@PathVariableを使用してみてください。

@RequestBody注釈は、HTTP本文メッセージのデータをメソッドパラメータにバインドしようとしていることを示します。

+0

お返事ありがとうございます。私はそれを試してみる。 – Andrew

+0

私の答えはあなたを助けましたか?あなたの問題を解決しましたか? @Andrew –

関連する問題