I want to apply external changes in Entity. so i used refresh() in EntityManager it is working in EntityManager session. but it's not working in external change.
it based on SpringBoot 2.x. this is my simple code.
@ExtendWith(SpringExtension.class)
@SpringBootTest
class RewardOrderRepositoryTest {
@Inject
private TestRepository testRepository;
@PersistenceContext
private EntityManager entityManager;
@Test
@Transactional
@Rollback(false)
public void test() {
final Test test = testRepository.findById(8L).get();
assertThat(test.getName(), is("Tom"));
// BREAK POINT : name modify to external mysql client(ex) mysql workbench)
entityManager.refresh(test);
assertThat(test.getName(), is("Alice")); // it's false, still Tom.
}
}
Why aren't external changes reflected? Is refresh() method only use in EntityManager Session?