Spring-data和Hibernate自动生成的ID

时间:2015-11-27 10:00:04

标签: java spring hibernate spring-data

我在我的实体上使用Spring-data PagingAndSortingRepository(拥有@GeneratedValue ID)。是否有任何方式使PUT和POST与有效负载中设置的ID一起工作并抛出异常或只是忽略提供的ID并使用Hibernate(通过某些配置,等我知道)我可以以编程方式检查它(麻烦,meh))?

提供将被使用和持久化的ID的能力会破坏整个数据库。

谢谢!

1 个答案:

答案 0 :(得分:1)

您没有说明您是否使用Spring MVC,但假设您可以使用自定义数据绑定器来阻止某些字段的绑定。

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-initbinder

您可以通过控制器建议在全球范围内应用此功能:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-controller-advice

  

使用@ControllerAdvice注释的类可以包含   @ ExceptionHandler,@ InitBinder和@ModelAttribute注释方法,   并且这些方法将适用于所有的@RequestMapping方法   控制器层次结构,而不是控制器层次结构   他们被宣布。

e.g。

@ControllerAdvice
public class BaseControllerAdvice {

    @InitBinder()
    public void initBinder(WebDataBinder binder) {
        binder.setDisallowedFields(new String[] { "id", "version" });
    }
}