如何使用类中的setter方法将数据插入JPA Entity表?

时间:2016-12-26 13:33:01

标签: java spring-data-jpa h2

下面是我如何创建表并定义了一个set方法:

@Entity
@Table(name = "Book")
public class Book extends AbstractPersistable<Long> {

@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;

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

从控制器这是我试图设置内容的方式:`

@RequestMapping("/addBook")
@ResponseBody
public String addBook(@RequestParam("name") String name) {
    Book book = new Book();
    book.setContent(name);
    return name;        
}

当我使用name参数值从addBook页面设置新内容时,内容显示在同一页面上。现在我要做的是向表中插入更多内容,但我不确定是否将内容插入到表中。我需要向表中添加更多内容。 setContent方法是更新还是插入内容?如果它有内容,我该如何看待表?

2 个答案:

答案 0 :(得分:1)

我假设你有一个spring存储库来执行类似

的CRUD操作
public interface BookRepository extends JpaRepository<Book ,Long> {

}

然后在您的控制器类中有

@Autowired
private BookRepository repo;

现在在您的addBook方法中,您可以通过这种方式保存图书对象

@RequestMapping("/addBook")
@ResponseBody
public String addBook(@RequestParam("name") String name) {
    Book book = new Book();
    book.setContent(name);
    repo.save(book);
    return name;        
}

您的图书对象现在将添加到您的数据库

答案 1 :(得分:0)

@Gustav - 你还在寻找像 - &gt;这样的东西吗?什么是sql与参数传递生成?

然后你可以使用

  @Bean
  public Map<String, String> jpaProperties() {
    Map<String, String> props = new HashMap<>();
    props.put("eclipselink.logging.level.sql", "FINE");
    props.put("eclipselink.logging.parameters", "true");
    return props;
}