hibernate的对象查询与sql语句的对应
来源:优易学  2011-9-22 10:42:20   【优易学:中国教育考试门户网】   资料下载   IT书店

  1:
  SELECT * FROM ORDER
  对应的hibernate对象查询:
  List orders= session.createCriteria(Order.class).list();
  2:
  SELECT NAME,ID FROM PRODUCT
  对应的hibernate对象查询:
  List products =session.createCriteria(Product.class).setProjection(
  Projections.propertyList()
  .add(Projections.property(\"name\"))
  .add(Projections.property(\"id\"))
  ).list();
  3:
  SELECT O.*, P.* FROM ORDERS O, PRODUCT P WHERE O.ORDER_ID=P.ORDER_ID;
  对应的hibernate对象查询:
  List orders = session.createCriteria(Order.class)
  .setFetchMode(“products”,FetchMode.JOIN)
  .list();
  4:
  SELECT * FROM ORDERS WHERE ORDER_ID=’1092’;
  对应的hibernate对象查询:
  List orders= session.createCriteria(Order.class)
  .add(Restrictions.eq(“orderId”,”1092”))
  .list();
  5:
  SELECT O.*, P.* FROM ORDERS O, PRODUCT P WHERE
  O.ORDER_ID=P.ORDER_ID AND P.ID=’1111’;
  对应的hibernate对象查询:
  List orders = session.createCriteria(Order.class)
  .setFetchMode(“products”,FetchMode.JOIN)
  .add(Restrictions.eq(“id”,”1111”))
  .list();
  6:
  SELECT COUNT(ID) FROM ORDER HAVING PRICETOTAL>2000 GROUP BY ID
  对应的hibernate对象查询:
  List orders = session.createCriteria(Order.class)
  .setProjection( Projections.projectionList()
  .add( Projections.count(“id”) )
  .add( Projections.groupProperty(“id”) )
  )
  .list();
  青年人网整理:查询总结:
  (1)如何得到session:
  Configuration cfg = new Configuration()
  .addClass(Order.class);
  SessionFactory sf = cfg.buildSessionFactory();
  // open session
  Session sess = sf.openSession();
  (2)HQL方法
  String query = "select o from o "
  + "Order as o join o.products as p "
  + "where o.priceTotal > :priceTotalLower "
  + "and o.priceTotal < :priceTotalUpper";
  Query q = sess.createQuery(query);
  q.setDouble("priceTotalLower",
  Double.parseDouble(lower));
  q.setDouble("priceTotalUpper",
  Double.parseDouble(upper))
  q.list();
  (3)Criteria
  List list = sess.createCriteria(Order.class)
  .add(Restrictions.between(lower,upper)
  . list();
  Order o=(Order)list.iterator.next();

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训