我想知道如何在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);
}

09-11 19:28