1

私は最初の Java EE プロジェクトから始めています。ドキュメントを少し読んで、アップデートのパフォーマンスやスタイルについて質問があります。より良いもの:

@Override
public void updateBook(BookTO to) {
    BookEJB book = new BookEJB(to.getISBN());
    book.setFinishedReading(to.getFinishedReading());
    book.setRating(to.getRating());
    entityManager.merge(book);
}

また

@Override
public void updateBook(BookTO to) {
    BookEJB book = entityManager.find(BookEJB.class, to.getISBN());
    book.setFinishedReading(to.getFinishedReading());
    book.setRating(to.getRating());
}

どう思いますか?

4

3 に答える 3

0

メソッドがトランザクション内で呼び出されていることを確認してください。コンテナー管理のトランザクションを実現できます。

  1. EJB 内でメソッドを呼び出す
  2. POJO メソッドで新しく導入された @Transactional を使用する

またはユーザートランザクション内。

デフォルトでは、以下を使用している場合、楽観的ロックが有効になっています。

@Version
private int version;

読み取り時にエンティティを明示的にロックすることで、ペシミスティック ロックを有効にすることもできます。

于 2013-09-20T00:27:51.223 に答える