2
對於注射@PathVariable
實體我的意思是我怎麼能力彈簧DATA REST @PathVariable實體存在
@RequestMapping(method = RequestMethod.PUT, path = "{project-id}")
@Transactional
@PreAuthorize("#user.id == #project.userId")
public Object update(@P("user") @Current User user,
@P("project") @PathVariable Project entity,
@RequestBody @Valid ProjectPost request) {
setProjectPostToEntity(entity, request);
return ResponseEntity.ok(ImmutableMap.of("message", "Project update successful"));
}
但@PathVariable Project entity
將是無效的,如果不project-id
在庫中找到,我想是這樣的
@RequestMapping(method = RequestMethod.PUT, path = "{project-id}")
@Transactional
@PreAuthorize("#user.id == #project.userId")
public Object update(@P("user") @Current User user,
@P("project") @PathVariable @Valid @NotNull(message="Update project not exists") Project entity,
@RequestBody @Valid ProjectPost request) {
setProjectPostToEntity(entity, request);
return ResponseEntity.ok(ImmutableMap.of("message", "Project update successful"));
}
如果在庫中找不到project-id
將返回消息Update project not exists
,但@Valid @NotNull(message="Update project not exists")
在這裏不起作用,我該怎麼做這樣的事情?
感謝鏈接,我想介紹一下服務層是reasonable.But我覺得這也是一個常見的情況,我可以在這裏進行預授權,這是非常有用的。 – wener
>但是,如果在存儲庫中找不到項目標識,則@PathVariable項目實體將爲空。你的意思是你向DB請求? –
而'@ PreAuthorize'通常用於從SecurityContextHolder中檢查用戶的憑證 –