package org.hibernate.examples.mapping.embeddable; import lombok.extern.slf4j.Slf4j; import org.hibernate.examples.AbstractJpaTest; import org.junit.Test; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import static org.assertj.core.api.Assertions.assertThat; /** * org.hibernate.examples.mapping.embeddable.EmbeddableTest * * @author 배성혁 sunghyouk.bae@gmail.com * @since 2013. 11. 30. 오후 12:38 */ @Slf4j @Transactional public class EmbeddableTest extends AbstractJpaTest { @PersistenceContext EntityManager em; @Test public void embeddableTest() throws Exception { User user = new User("debop", "1234"); user.setFirstname("성혁"); user.setLastname("배"); user.getHomeAddress().setCity("서울"); user.getHomeAddress().setStreet("정릉로"); user.getHomeAddress().setZipcode("100-100"); user.getOfficeAddress().setCity("서울"); user.getOfficeAddress().setStreet("안국로"); user.getOfficeAddress().setZipcode("200-200"); em.persist(user); em.flush(); em.clear(); User loaded = em.find(User.class, user.getId()); assertThat(loaded).isNotNull(); assertThat(loaded.getHomeAddress()).isNotNull(); assertThat(loaded.getHomeAddress().getZipcode()).isEqualTo(user.getHomeAddress().getZipcode()); assertThat(loaded.getOfficeAddress()).isNotNull(); assertThat(loaded.getOfficeAddress().getZipcode()).isEqualTo(user.getOfficeAddress().getZipcode()); } }