엔티티의 상태 변화를 전파시키는 옵션

엔티티의 상태란?

@Override
public void run(ApplicationArguments args) throws Exception {
	Account account = new Account();
	account.setUsername("cmlee3");
	account.setPassword("pass3");

	Study study = new Study();
	study.setName("spring jpa");

	account.addStudy(study);

	Session session = entityManager.unwrap(Session.class);
	session.save(account);
	session.save(study);

	Account cmlee = session.load(Account.class, account.getId());
	System.out.println(cmlee.getUsername());
//		entityManager.persist(account);
}

조회할 때 굳이 select 하지 않고 캐시 된 데이터 쓰고 그 후에 insert 한다.

@Override
public void run(ApplicationArguments args) throws Exception {
	Account account = new Account();
	account.setUsername("cmlee3");
	account.setPassword("pass3");

	Study study = new Study();
	study.setName("spring jpa");

	account.addStudy(study);

	Session session = entityManager.unwrap(Session.class);
	session.save(account);
	session.save(study);

	Account cmlee = session.load(Account.class, account.getId());
	cmlee.setUsername("cmlee!!");

	System.out.println(cmlee.getUsername());
//		entityManager.persist(account);
}

save 후에 값을 변경하면 update가 발생한다.

트랜잭션이 끝나서 세션 밖으로 나오면 detached 상태가 된다.