1. 程式人生 > >jpa多表聯查和無表對映JPQL處理

jpa多表聯查和無表對映JPQL處理

package junit.test; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; import org.junit.Test; import com.ljq.entity.A; import com.ljq.entity.Abc; import com.ljq.entity.B; import com.ljq.entity.C; /**
* 多表查詢 * * @author jiqinlin * */publicclass MultiListQueryTest { @Test publicvoid add() throws Exception { EntityManagerFactory factory = Persistence.createEntityManagerFactory("ljq"); EntityManager em = factory.createEntityManager(); em.getTransaction().begin(); em.persist(
new A("41650a", "abcefg1")); em.persist(new A("41650b", "abcefg2")); em.persist(new A("41650c", "abcefg3")); em.persist(new C("imsig_a","12345a")); em.persist(new C("imsig_b","12345b")); em.persist(new C("imsig_c","12345c")); em.persist(new C("imsig_e
","12345d")); em.persist(new B("41650a", "imsig_a", "059188893381")); em.persist(new B("41650b", "imsig_b", "059188893382")); em.persist(new B("41650e", "imsig_c", "059188893383")); em.persist(new B("41650aa", "imsig_123", "059188893384")); em.persist(new B("41650cc", "imsig_1", "059188893385")); em.getTransaction().commit(); em.close(); factory.close(); } /** * 多表查詢物件A、B * * @throws Exception */ @Test publicvoid queryAB() throws Exception { EntityManagerFactory factory = Persistence.createEntityManagerFactory("ljq"); EntityManager em = factory.createEntityManager(); List<Abc> abcs = em.createQuery("select new com.ljq.entity.Abc(a.imsi, a.sipss, b.mdn) "+"from A a, B b where a.imsi=b.imsi").getResultList(); for(Abc abc : abcs){ System.out.println("imsi:"+abc.getImsi()); System.out.println("sipss:"+abc.getSipss()); System.out.println("mdn:"+abc.getMdn()); System.out.println("========"); } em.close(); factory.close(); } /** * 多表查詢物件B、C * * @throws Exception */ @Test publicvoid queryBC() throws Exception { EntityManagerFactory factory = Persistence.createEntityManagerFactory("ljq"); EntityManager em = factory.createEntityManager(); List<Abc> abcs = em.createQuery("select new com.ljq.entity.Abc(b.imsi, b.imsig, b.mdn, c.ki) "+"from B b, C c where b.imsig=c.imsig").getResultList(); for(Abc abc : abcs){ System.out.println("imsi:"+abc.getImsi()); System.out.println("imsig:"+abc.getImsig()); System.out.println("mdn:"+abc.getMdn()); System.out.println("ki:"+abc.getKi()); System.out.println("======="); } em.close(); factory.close(); } /** * 多表查詢物件A、B、C * * @throws Exception */ @Test publicvoid queryABC() throws Exception { EntityManagerFactory factory = Persistence.createEntityManagerFactory("ljq"); EntityManager em = factory.createEntityManager(); List<Abc> abcs = em.createQuery("select new com.ljq.entity.Abc(b.imsi, b.imsig, a.sipss, b.mdn, c.ki) "+"from A a, B b, C c where a.imsi=b.imsi and b.imsig=c.imsig").getResultList(); for(Abc abc : abcs){ System.out.println("imsi:"+abc.getImsi()); System.out.println("imsig:"+abc.getImsig()); System.out.println("sipss:"+abc.getSipss()); System.out.println("mdn:"+abc.getMdn()); System.out.println("ki:"+abc.getKi()); System.out.println("======="); } em.close(); factory.close(); } @Test publicvoid test() throws Exception { Persistence.createEntityManagerFactory("ljq"); } }