我想知道如何在rest服务中更新行数据。该行是使用EntityManager创建的,即em.merge,未使用insert语句。
现在,我要更新创建的行中的某些字段,请问该如何处理?
bookDto.java
@Id
@Column(name = "name")
private String name;
@Column(name = "author")
private String author;
service.java
public class BookService {
private EntityManager em;
//create new, works fine, creates without sql insert query
public BookDto createBook(BookDto bookDto) {
Book book = new Book();
book.setName(bookDto.getName());
book.setAuthor(bookDto.getAuthor());
return new BookDto(em.merge(book));
}
// update existing
public BookDto updateBook(BookDto bookDto){
// I need help to complete this update method
// The row gets updated based on @id
// on the name
}
}
我如何完成更新方法,谢谢。
最佳答案
如果您要传递的BookDto对象的updateBook方法在这种情况下包含@id,则只使用em.merge
public BookDto updateBook(BookDto bookDto){
return em.merge(bookDto);
}