gpt4 book ai didi

java - Spring-data 和 Hibernate 自动生成的 ID

转载 作者:行者123 更新时间:2023-12-01 10:50:22 26 4
gpt4 key购买 nike

我在我的实体上使用 Spring-data 的 PagingAndSortingRepository(具有 @GenerateValue ID)。有什么方法可以让有效负载中设置的 ID 的 PUT 和 POST 无法工作并抛出异常,或者只是忽略提供的 ID 并使用 Hibernate 的(通过某些配置等,我知道我可以以编程方式检查它) (麻烦,嗯))?

提供将要使用和持久保存的 ID 的能力会搞砸整个数据库。

谢谢!

最佳答案

您没有说您是否正在使用 Spring MVC,但假设您正在使用,那么您可以使用自定义数据绑定(bind)器来防止绑定(bind)某些字段。

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

您可以通过 Controller 建议在全局范围内应用此功能:

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

Classes annotated with @ControllerAdvice can contain @ExceptionHandler, @InitBinder, and @ModelAttribute annotated methods, and these methods will apply to @RequestMapping methods across all controller hierarchies as opposed to the controller hierarchy within which they are declared.

例如

@ControllerAdvice
public class BaseControllerAdvice {

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

关于java - Spring-data 和 Hibernate 自动生成的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33954810/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com