jpa多表聯查和無表對映JPQL處理
阿新 • • 發佈:2019-02-16
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");
}
}