私はこのようになりますモデルを持っていますモデルだけでなく、ランダムなUUIDも含みます。データベースでPKを主キーとして使用したいが、UUIDを公開IDとして使用したい。あなたは、私がIDとして文字列を使用するようにリポジトリを設定している見ることができるよう春データRESTおよびカスタムエンティティ・ルックアップ(間違ったタイプのIDを提供し)
@RepositoryRestResource(collectionResourceRel = "my-model", path = "my-model")
public interface MyModelRepository extends CrudRepository<MyModel, String> {
@RestResource(exported = false)
MyModel findByUuid(@Param("uuid") String id);
}
:(URLになどに使用されるように)
私のリポジトリには、このようになります。
は、最後に私はこのような設定ファイルに実体参照を設定します。
@Component
public class RepositoryEntityLookupConfig extends RepositoryRestConfigurerAdapter {
@Override
public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
config.withEntityLookup().forRepository(MyModelRepository.class, MyModel::getUuid, MyModelRepository::findByUuid);
}
}
を。これは、GETやPOSTリクエストのために完璧にうまく動作しますが、私はエラーがPUTに戻り、DELETEメソッドを取得するいくつかの理由。
o.s.d.r.w.RepositoryRestExceptionHandler : Provided id of the wrong type for class MyModel. Expected: class java.lang.Integer, got class java.lang.String
誰でもこれを引き起こしている可能性がありますか?私はなぜそれが整数を期待しているのか分からない。
私はフレームワークに全く新しいので、私は何か愚かなことをしているかもしれません。 ありがとうございました。
迅速な対応をありがとうございます。 URLでIDを使用できるようにStringで宣言する必要があるという印象を受けました。しかし、私はちょうど整数でそれをテストし、私は明らかに間違っていた。 – arcticfeather