Package org.hibernate.examples.mapping.compositeId

Source Code of org.hibernate.examples.mapping.compositeId.CompositeIdTest

package org.hibernate.examples.mapping.compositeId;

import lombok.extern.slf4j.Slf4j;
import org.hibernate.examples.AbstractJpaTest;
import org.hibernate.examples.mapping.compositeId.embeddable.EmbeddableCarIdentifier;
import org.hibernate.examples.mapping.compositeId.embeddable.EmbeddableIdCar;
import org.hibernate.examples.mapping.compositeId.idclass.CarIdentifier;
import org.hibernate.examples.mapping.compositeId.idclass.IdClassCar;
import org.hibernate.examples.mapping.compositeId.manytoone.Order;
import org.hibernate.examples.mapping.compositeId.manytoone.OrderDetail;
import org.hibernate.examples.mapping.compositeId.manytoone.Product;
import org.junit.Test;
import org.springframework.transaction.annotation.Transactional;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import static org.fest.assertions.Assertions.assertThat;

/**
* org.hibernate.examples.mapping.compositeId.CompositeIdTest
*
* @author 배성혁 sunghyouk.bae@gmail.com
* @since 2013. 11. 29. 오후 4:38
*/
@Slf4j
@Transactional
public class CompositeIdTest extends AbstractJpaTest {

    @PersistenceContext
    EntityManager em;

    @Test
    public void embeddedidTest() {
        EmbeddableIdCar car = new EmbeddableIdCar(new EmbeddableCarIdentifier("Kia", 2012));
        car.setSerialNo("6675");

        em.persist(car);
        em.flush();
        em.clear();

        EmbeddableIdCar loaded = em.find(EmbeddableIdCar.class, car.getId());
        assertThat(loaded).isNotNull();
        assertThat(loaded.getId()).isNotNull();
        assertThat(loaded.getId().getBrand()).isEqualTo("Kia");

        loaded.setSerialNo("5081");
        em.persist(loaded);
        em.flush();
        em.clear();

        loaded = em.find(EmbeddableIdCar.class, new EmbeddableCarIdentifier("Kia", 2012));

        assertThat(loaded).isNotNull();

        em.remove(loaded);
        em.flush();
        em.clear();

        loaded = em.find(EmbeddableIdCar.class, new EmbeddableCarIdentifier("Kia", 2012));
        assertThat(loaded).isNull();
    }

    @Test
    public void idClassTest() {
        IdClassCar car = new IdClassCar();
        car.setBrand("Kia");
        car.setYear(2012);
        car.setSerialNo("6675");

        em.persist(car);
        em.flush();
        em.clear();

        IdClassCar loaded = em.find(IdClassCar.class, new CarIdentifier("Kia", 2012));

        assertThat(loaded).isNotNull();
        assertThat(loaded.getBrand()).isNotNull();
        assertThat(loaded.getBrand()).isEqualTo("Kia");

        loaded.setSerialNo("5081");
        em.persist(loaded);
        em.flush();
        em.clear();

        loaded = em.find(IdClassCar.class, new CarIdentifier("Kia", 2012));

        assertThat(loaded).isNotNull();
        assertThat(loaded.getBrand()).isNotNull();
        assertThat(loaded.getBrand()).isEqualTo("Kia");

        em.remove(loaded);
        em.flush();
        em.clear();

        loaded = em.find(IdClassCar.class, new CarIdentifier("Kia", 2012));
        assertThat(loaded).isNull();
    }

    @Test
    public void manytoone() throws Exception {
        Order order = new Order();
        order.setNumber("order-1234");
        em.persist(order);

        Product product = new Product();
        product.setName("monitor");
        em.persist(product);

        OrderDetail detail = new OrderDetail(order, product);
        order.getOrderDetails().add(detail);
        product.getOrderDetails().add(detail);

        em.persist(detail);
        em.flush();
        em.clear();

        OrderDetail loaded = em.find(OrderDetail.class, detail.getId());
        assertThat(loaded).isNotNull();
        assertThat(loaded.getId().getOrder()).isNotNull();
        assertThat(loaded.getId().getProduct()).isNotNull();

        loaded.setQuantity(12);
        em.persist(loaded);
        em.flush();
        em.clear();

        loaded = em.find(OrderDetail.class, detail.getId());

        assertThat(loaded).isNotNull();
        assertThat(loaded.getId().getOrder()).isNotNull();
        assertThat(loaded.getId().getProduct()).isNotNull();

        em.remove(loaded);
        em.flush();
        em.clear();
    }
}
TOP

Related Classes of org.hibernate.examples.mapping.compositeId.CompositeIdTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.