
Hint
- SQL 힌트가 아니라 JPA 구현체에게 제공하는 힌트
@QueryHints(value = @QueryHint(name = "org.hibernate.readOnly", value = "true"))
Member findReadOnlyByUsername(String username);
Member user1 = memberRepository.save(new Member("user1", 10));
em.flush();
em.clear();
Member member = memberRepository.findById(user1.getId()).get();
member.setUsername("user2");
em.flush();
em.clear();
Member member2 = memberRepository.findReadOnlyByUsername("user2");
member.setUsername("user3");
em.flush();
em.clear();
Lock
@Lock(LockModeType.PESSIMISTIC_WRITE)
List<Member> findLockByUsername(String username);
Member user1 = memberRepository.save(new Member("user1", 10));
em.persist(user1);
em.flush();
em.clear();
List<Member> result = memberRepository.findLockByUsername("user1");