Постоянный контекст неожиданный поведениеJAVA

Программисты JAVA общаются здесь
Anonymous
Постоянный контекст неожиданный поведение

Сообщение Anonymous »

CategoryRepository определяется таким:

Код: Выделить всё

public interface CategoryRepository extends JpaRepository{
@Transactional
@Query("select c from Category c where name = :name")
Optional findByName(String name);
}
< /code>
Вот тестовый пример: < /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");
}
}
В DB всегда есть категория с именем Cat1 . Мое ожидание после 1-го оператора < /p>

Код: Выделить всё

categoryRepository.findByName("cat1");
< /code>
Category
объект должен находиться в контексте настойчивости, и, следовательно, второй вызов не должен снова запросить DB. Этого не происходит. Второй звонок снова попадает в БД. Вот журналы.


Подробнее здесь: https://stackoverflow.com/questions/795 ... d-behavior

Вернуться в «JAVA»