post(save()) で生成された ObjectId を返すように変更したい単純な MongoRepository があります。
public interface EmployeeRepository extends MongoRepository<Employee, String>
{
public void delete(Employee employee);
public Employee save(Employee employee);
public Employee findOne(String id);
public List<Employee> findAll();
public Employee findByName(String principal);
}
クライアント側でIDを生成して投稿に渡す方法を検討しましたが、Springにこれを処理してもらいたいです。
次のように、コントローラーでインターセプトし、ResponseBody でオブジェクトを返すことを試みました。
@RequestMapping(value=URI_EMPLOYEES, method=RequestMethod.POST)
public @ResponseBody Employee addEmployee(@RequestBody Employee employee) {
return repo.save(employee);
}
これの問題は、HATEOAS 関連のすべてのロジックの Spring ハンドルをやり直す必要があることです。これは大きな痛みです。(私が何かを見逃していない限り。)
すべてのメソッドを置き換えることなくこれを行う最も効果的な方法は何ですか?