엔티티의 상태 변화를 전파시키는 옵션
엔티티의 상태란?
@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 상태가 된다.