为了账号安全,请及时绑定邮箱和手机立即绑定

Java/SpringBoot Web 应用程序。插入具有自动递增 id 列的新行

Java/SpringBoot Web 应用程序。插入具有自动递增 id 列的新行

波斯汪 2024-01-25 10:38:36
我正在尝试使用 Web 应用程序上的一些输入行将新行存储到 SQL 表中。我的 jsp 具有我需要的所有输入行。但是,我需要存储新对象而不输入新 Id,因为它是自动递增的。我可以调用构造函数来存储除 id 之外的所有内容。到目前为止我该部分的代码是: @RequestMapping(value = "/save", method = RequestMethod.POST)    public ModelAndView save            //Index connect            (@RequestParam("id") String id, @RequestParam("type") String animalType,             @RequestParam("name") String animalName, @RequestParam("age") int animalAge){        ModelAndView mv = new ModelAndView("redirect:/");        AnimalConstruct newAnimal;        newAnimal.setAnimalType(animalType);        newAnimal.setAnimalName(animalName);        newAnimal.setAnimalAge(animalAge);        animals.save(newAnimal);        mv.addObject("animalList", animals.findAll());        return mv;因此,如果我想存储“(id)11,(type)bird,(name)patty,(age)5”,并且我只将类型、名称和年龄设置为可输入,那么我应该对 id 做什么?我认为该对象在技术上将 id 注入为空,但随后我抛出了一个错误。我对 java 和 Springboot 都很陌生,并且在这两个方面的技能都非常薄弱。
查看完整描述

3 回答

?
交互式爱情

TA贡献1712条经验 获得超3个赞

JPA 实现(例如 Hibernate)会带来神奇的效果。只需注释您的 id 字段,例如:

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;

保存对象时,将自动生成并存储 id。

检查一些类似的问题:Hibernate Auto Increment IDHow to autogenerateprimarykeyidproperly with Hibernateinsertingrecords


查看完整回答
反对 回复 2024-01-25
?
狐的传说

TA贡献1804条经验 获得超3个赞

当您希望创建对象时,不应传递 ID。


@RequestMapping(value = "/protected", method = RequestMethod.POST)

public RouteDocument doPost(@RequestBody RouteDocument route) throws ControllerException {

    createNewRoute(route);

    return route;

}

在前面的示例中,createNewRoute 方法调用数据库,在我的例子中使用 spring JpaTemplate 来保存它。对象路由有一个由 JpaTemplate.save 填充的 ID 属性。因此,doPost 返回对象返回的对象与作为参数传递的对象相同,但具有自动分配的 ID。


查看完整回答
反对 回复 2024-01-25
?
holdtom

TA贡献1805条经验 获得超10个赞

使用以下内容注释 bean 中的 id 列:

@Id
@GeneratedValue (strategy = GenerationType.IDENTITY)
private long id;

正如上面 @pedrohreis 所回答的,您也可以使用GenerationType.AUTO,但前提是您的唯一目的是使自动增量 id 那么我更喜欢GenerationType.IDENTITY

另外,在您的项目中,如果您想禁用数据的批量更新,那么您应该使用GenerationType.IDENTITY.

参考:休眠标识符


查看完整回答
反对 回复 2024-01-25
  • 3 回答
  • 0 关注
  • 107 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信