我在我的实体上使用Spring-data PagingAndSortingRepository
(拥有@GeneratedValue
ID)。是否有任何方式使PUT和POST与有效负载中设置的ID一起工作并抛出异常或只是忽略提供的ID并使用Hibernate(通过某些配置,等我知道)我可以以编程方式检查它(麻烦,meh))?
提供将被使用和持久化的ID的能力会破坏整个数据库。
谢谢!
答案 0 :(得分:1)
您没有说明您是否使用Spring MVC,但假设您可以使用自定义数据绑定器来阻止某些字段的绑定。
您可以通过控制器建议在全球范围内应用此功能:
使用@ControllerAdvice注释的类可以包含 @ ExceptionHandler,@ InitBinder和@ModelAttribute注释方法, 并且这些方法将适用于所有的@RequestMapping方法 控制器层次结构,而不是控制器层次结构 他们被宣布。
e.g。
@ControllerAdvice
public class BaseControllerAdvice {
@InitBinder()
public void initBinder(WebDataBinder binder) {
binder.setDisallowedFields(new String[] { "id", "version" });
}
}