問題

我想知道如何在休息服務中更新行資料.行是使用EntityManager建立的,即em.merge,沒有使用插入語句. 現在我想更新建立行中的一些欄位,請問我該怎麼做?

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);
}
 

  相同標籤的其他問題

javarestcrud