先看数据库:
[order_list_sub_sendnum_part]表:
idolsspart_num
11001
22002
33003
44004
55005
[order_list_sub_sendnum]表:
idols_idol_idsend_numhandel_dateoli_id
1111312332017-04-011
2221313132017-04-062
333131532017-04-043
444225 2017-04-034
555131352017-04-025
[order_list]表:
idorder_idmateriel_idmateriel_nameneedarrive
11789钢铁100 NULL
22798水泥99 NULL
33456树脂55 NULL
44465卷纸36 NULL
55156塑料165 NULL
当用户输入零件编号(part_num)查出全部符合要求的数据,SQL语句为:
select a.*,b.*,c.*
from order_list_sub_sendnum_part a,order_list_sub_sendnum b,order_list c
wherea.olss = b.id and b.oli_id = c.id and a.part_num='001';
结果为:
idolsspart_numidols_idol_idsend_numhandel_dateoli_ididorder_idmateriel_idmateriel_nameneedarrive
1100111 1131233 2017-04-011 11789钢铁100 NULL
1100111 1131233 2017-04-011 11789钢铁100 NULL
1100111 1131233 2017-04-011 11789钢铁100 NULL
1100111 1131233 2017-04-011 11789钢铁100 NULL
1100111 1131233 2017-04-011 11789钢铁100 NULL
在java中,使用hibernate 框架的时候应该这么写:
package com.ifreshwing.test;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;
import com.google.gson.Gson;
import com.ifreshwing.hibernate.HibernateSessionFactory;
import com.ifreshwing.hibernate.HibernateUtil;
import com.ifreshwing.hibernate.OrderListSubSendnumPart;
import com.ifreshwing.hibernate.SSub;
import com.ifreshwing.hibernate.UserIn;
import com.ifreshwing.hibernate.UserInfoId;
public class Test {
public static void main(String[] args) {
List<?> list1 = new ArrayList<>();
list1 = findUserByName("001");
System.out.println(new Gson().toJson(list1));
}
public static List<?> findUserByName(String name) {
Session session = null;
try {
session = HibernateSessionFactory.getSession();
String hql = "from OrderListSubSendnumPart a,OrderListSubSendnum b,OrderList c "
+ "where a.olss = b.id and b.oliId = c.id and a.partNum=?";
Query query = session.createQuery(hql);
query.setString(0, name);
List<?> list = query.list();
return list;
} catch (HibernateException e) {
e.printStackTrace();
return null;
} finally {
if (session != null) {
session.close();
}
}
}
}
结果为:[[
{"id":1,"olss":1,"partNum":"001"},
{"id":1,"olsId":1,"olId":1,"sendNum":131233,"handelDate":"2017-04-01","oliId":1},
{"id":1,"orderId":1,"materielId":"789","materielName":"钢铁","need":100.0}
]]