我想搜索當前的持久化上下文,如果有必要,搜索實體存在的支持數據庫。這是一個獨立的java-se應用程序。 (它不會在java-ee應用程序容器中運行。)我不必擔心線程安全。我是否需要在EntityTransaction的上下文中查詢數據庫?調用entityManager.find()是否需要EntityTransaction?
這種方式或另一種方式有潛在的差異嗎?
entityManager.getTransaction.begin();
MyEntity me = entityManager.find(MyEntity.class, myEntity.getPrimaryKey());
entityManager.getTransaction.commit();
我的答案是100%正確的,因爲在你提到的情況下它們不是READ_ONLY。在您放置鎖的那一刻,版本字段將跳轉,並且操作將不再是READ_ONLY,因此您將需要事務。但只要您保持READ_ONLY操作事務不需要。如果你再讀一遍,這就是我在我的帖子中所說的「只要它是隻讀的,不需要交易」 –