gpt4 book ai didi

java - 使用 JPA 持久保存表单数据

转载 作者:行者123 更新时间:2023-12-01 10:38:59 25 4
gpt4 key购买 nike

我试图弄清楚如何使用 SpringMVC 和 hibernate 保存表单中的用户输入。例如,我正在遵循本指南:

spring.io guide

基本上它显示了一个 Controller :

@Controller
public class GreetingController {

@RequestMapping(value="/greeting", method= RequestMethod.GET)
public String greetingForm(Model model) {
model.addAttribute("greeting", new Greeting());
return "greeting";
}

@RequestMapping(value="/greeting", method=RequestMethod.POST)
public String greetingSubmit(@ModelAttribute Greeting greeting, Model model) {
model.addAttribute("greeting", greeting);
return "result";
}
}

一个 Greeting.java,我在其中添加了一些 JPA 注释,但我不确定表单是否有自己的对象,并且我需要为问候实体创建一个单独的对象。

@Entity
@Table(name = "greeting")
public class Greeting {

@Id
@GeneratedValue
@Column(name = "greeting_id")
private long id;

@Column(name = "greeting_content")
private String content;

public long getId() {
return id;
}

public String getContent() {
return content;
}

public void setContent(String content) {
this.content = content;
}
}

以及用于显示的 html 和仅具有 starter-web 和 thyme leaf 依赖项的 pom...

我还创建了一个简单的存储库,它扩展了 CrudRepository,以及一个目前为空的服务层。

我想弄清楚的是,当单击提交按钮时,如何使用 hibernate 将问候语字段保存到数据库中。任何帮助都会很棒,谢谢。

最佳答案

Spring CrudRepository 提供了 save() 方法。测试代码和 Spring/Entity 配置的简单方法,您可以尝试如下:

@Controller
public class GreetingController {

//Autowire your CrudRepo of Greeting
@Autowired
GreetingRepository repository;

@RequestMapping(value="/greeting", method= RequestMethod.GET)
public String greetingForm(Model model) {
model.addAttribute("greeting", new Greeting());
//create a new Greeting() Object and set your values to it.
//create a constructor if the values are not that much.
Greeting greeting = new Greeting();
greeting.setContent(yourContent);
repository.save(greeting);
return "greeting";
}

@RequestMapping(value="/greeting", method=RequestMethod.POST)
public String greetingSubmit(@ModelAttribute Greeting greeting, Model model) {
model.addAttribute("greeting", greeting);
//create a new Greeting() Object and set your values to it.
//create a constructor if the values are not that much.
Greeting greeting = new Greeting();
greeting.setContent(yourContent);
repository.save(greeting);
return "result";
}
}

默认情况下,CrudRepository 界面应如下所示:

@Repository
public interface GreetingRepository extends CrudRepository<Greeting, Serializable>{

}

关于java - 使用 JPA 持久保存表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34524680/

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