Frühlingsdaten JPA: Persistenter Kontext unerwartetes Verhalten

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Frühlingsdaten JPA: Persistenter Kontext unerwartetes Verhalten

by Anonymous » 12 Apr 2025, 17:36

Der CategoryRepository ist so definiert:

Code: Select all

public interface CategoryRepository extends JpaRepository{
@Transactional
@Query("select c from Category c where name = :name")
Optional findByName(String name);
}
< /code>
Hier ist der Testfall: < /p>
@SpringBootTest
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class CategoryRepositoryTests {
@Autowired
private CategoryRepository categoryRepository;

@Test
@Transactional
public void testCaching(){
categoryRepository.findByName("cat1");
categoryRepository.findByName("cat1");
}
}
In DB gibt es immer eine Kategorie Cat1 . Meine Erwartung ist nach der 1. Anweisung < /p>

Code: Select all

categoryRepository.findByName("cat1");
< /code>
Category
Objekt sollte im Persistenzkontext sein, und daher sollte der zweite Aufruf die DB nicht erneut abfragen. Dies geschieht nicht. Der zweite Anruf trifft erneut auf die DB. Hier sind die Protokolle.

Top