2016-12-13 16 views
0

POST/PUTリクエストを使用して公開されたエンティティの型付きマップcollection associationのコンテンツをSpring Data Restで更新するにはどうすればよいですか?地図上でPOST/PUTを実行する方法

私はContent-Type: text/uri-listを使用してリストまたはSet団体に/ PUTを投稿する方法を知っているが、私は私が上ressource URIを送信しようとしたキー/値の地図<>

EDIT

でありませんPUTリクエストのボディにアソシエートエンドポイントのContent-Type: text/uri-listが含まれています。だから、(副作用?)がサポートしているようだ

{ 
    self: { ENTITY content} 
} 

:このことにより、>私は、エラーを与えなかったが、それは地図<の以前のすべての内容を置き換えます。キー名はselfです。 キーの指定方法がわかりません。

+0

HTTPボディに何を設定するのか分からないので何もありません。 –

+0

リレーションシップは双方向であり、関連付けられたタイプにレストリソースとしてエクスポートされたリポジトリがありますか?そうであれば、他の方法は、関連付けられたタイプのリポジトリのエンドポイントにポストすることです。 –

+0

私の質問は、ユースケースに固有のものではなく、春のデータ休憩でそれを行う方法です。私は関連エンティティリポジトリの両方をエクスポートしようとしました。この協会は双方向ではなかった。私は[JIRA問題](https://jira.spring.io/browse/DATAREST-960?jql=project%20%3D%20DATAREST)でシンプルなデモプロジェクトを作成しました。この問題の周りに投稿します –

答えて

0
@WebService 
@Path("/test") 
public class TestResource { 


    @GET 
    @Produces(APPLICATION_JSON) 
    public HashMap<String, String> findAll() { 

     HashMap<String, String> test = new HashMap<>(); 
     test.put("key1", "value1"); 
     test.put("key2", "value2"); 
     return test; 
    } 

これは、フロントエンドでJSONを生成します。

{"key2":"value2","key1":"value1"} 

は、しかし、これはあなたが後にあるかではないかもしれないアプリケーション/ JSONコンテンツタイプを使用していますか?

+1

申し訳ありません私の質問。私は自動的に私のドメインモデルのエンティティクラスを休息リソースに公開するSpring Data Restを使用します。 GETリソースはうまくいきますが、Map <>の関連付けをPOSTまたはPUTする方法はわかりません。 –

+0

getから取得したデータを見て、同じデータをポストバックしてください! – David

+1

'Spring Data Rest'はエンティティアソシエーション上に特殊なサブリソースエンドポイントを作成します。エンティティアソシエーションでは、リソースURIのリストをPOSTまたはPUTすることができます(HATEOAS)。これは、関連を扱うために 'Spring Data Rest'で行うことが普通の方法です。私が知らないのは、アソシエーションタイプがJavaマップの場合です。私はキーを指定する必要がありますが、それが可能な場合、それを行うための通常の方法は、わからない。 –

関連する問題