Example usage for org.hibernate FetchMode JOIN

List of usage examples for org.hibernate FetchMode JOIN

Introduction

In this page you can find the example usage for org.hibernate FetchMode JOIN.

Prototype

FetchMode JOIN

To view the source code for org.hibernate FetchMode JOIN.

Click Source Link

Document

Fetch using an outer join.

Usage

From source file:com.arg.arsoft.siantluis.repository.imp.OrderRepository.java

@Override
public Map findByQuery(OrderQuery query) {
    int pageSize = Configs.PAGE_SIZE;
    Criteria criteria = factory.getCurrentSession().createCriteria(Order.class);

    if (query.getCode() != null && !query.getCode().equals("")) {
        if (query.getCode().contains("*") || query.getCode().contains("?")) {
            criteria.add(Restrictions.like("code", query.getCode().replace("*", "%").replace("?", "_")));
        } else {/*w w w  .  j a v  a2 s  . c om*/
            criteria.add(Restrictions.eq("code", query.getCode()));
        }
    }
    if (query.getName() != null && !query.getName().equals("")) {
        if (query.getName().contains("*") || query.getName().contains("?")) {
            criteria.add(Restrictions.like("name", query.getName().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Restrictions.eq("name", query.getName()));
        }
    }
    if (query.getEmployee() != null && !query.getEmployee().equals("")) {
        criteria.createAlias("requestBy", "e", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("e.code", query.getCode()));
    }
    if (query.getCustomer() != null && !query.getCustomer().equals("")) {
        criteria.createAlias("customer", "c", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("c.code", query.getCustomer()));
    }
    if (query.getShipper() != null && query.getShipper() != 0) {
        criteria.createAlias("shipper", "s", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("s.id", query.getShipper()));
    }
    if (query.getOrderDateStart() != null) {
        criteria.add(Restrictions.ge("orderDate", query.getOrderDateStart()));
    }
    if (query.getOrderDateEnd() != null) {
        criteria.add(Restrictions.le("orderDate", query.getOrderDateEnd()));
    }
    if (query.getRequireDateStart() != null) {
        criteria.add(Restrictions.ge("requireDate", query.getRequireDateStart()));
    }
    if (query.getRequireDateEnd() != null) {
        criteria.add(Restrictions.le("requireDate", query.getRequireDateEnd()));
    }
    long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString()))
            .uniqueResult();
    int start = ((query.getPage() - 1) * pageSize);

    criteria.setProjection(null);
    criteria.setFetchMode("requestBy", FetchMode.JOIN);
    criteria.setFetchMode("approveBy", FetchMode.JOIN);
    criteria.setFetchMode("customer", FetchMode.JOIN);
    criteria.setFetchMode("shipper", FetchMode.JOIN);
    criteria.setFetchMode("address.amphur", FetchMode.JOIN);
    criteria.setFetchMode("address.province", FetchMode.JOIN);

    List<Order> result = criteria.setFirstResult(start).setMaxResults(pageSize)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
    long totalPage = totalRecord / pageSize;
    if ((totalRecord % pageSize) > 0) {
        totalPage++;
    }
    List<Integer> pages = new ArrayList<Integer>();
    for (int index = 1; index <= totalPage; index++) {
        pages.add(index);
    }
    Map data = new HashMap();
    data.put("list", result);
    data.put("totalPage", totalPage);
    data.put("totalRecord", totalRecord);
    data.put("pages", pages);

    return data;
}

From source file:com.arg.arsoft.siantluis.repository.imp.PaymentRepository.java

@Override
public Payment findByKey(Integer key) {
    Criteria criteria = factory.getCurrentSession().createCriteria(Payment.class);
    criteria.add(Restrictions.eq("id", key));

    // fetch assocication
    criteria.setFetchMode("paymentBy", FetchMode.JOIN);
    criteria.setFetchMode("approveBy", FetchMode.JOIN);
    criteria.setFetchMode("department", FetchMode.JOIN);
    criteria.setFetchMode("branch", FetchMode.JOIN);
    criteria.setFetchMode("attachment", FetchMode.JOIN);

    // fetch collection
    criteria.setFetchMode("purchases", FetchMode.JOIN);
    criteria.setFetchMode("expenses", FetchMode.JOIN);
    criteria.setFetchMode("purchases.purchase", FetchMode.JOIN);
    criteria.setFetchMode("expenses.expense", FetchMode.JOIN);
    criteria.setFetchMode("cashes", FetchMode.JOIN);
    criteria.setFetchMode("cheques", FetchMode.JOIN);
    criteria.setFetchMode("cheques.bank", FetchMode.JOIN);
    criteria.setFetchMode("credits", FetchMode.JOIN);
    criteria.setFetchMode("credits.bank", FetchMode.JOIN);
    criteria.setFetchMode("transfers", FetchMode.JOIN);
    criteria.setFetchMode("transfers.bank", FetchMode.JOIN);

    List<Payment> result = criteria.list();
    if (result != null && result.size() > 0) {
        return result.get(0);
    } else {/*from  w w w.  j  ava2s  .  c  o m*/
        return null;
    }
}

From source file:com.arg.arsoft.siantluis.repository.imp.PaymentRepository.java

@Override
public Map findByQuery(PaymentQuery query) {
    int pageSize = Configs.PAGE_SIZE;
    Criteria criteria = factory.getCurrentSession().createCriteria(Payment.class);
    if (query.getCode() != null && !query.getCode().equals("")) {
        if (query.getCode().contains("*") || query.getCode().contains("?")) {
            criteria.add(Restrictions.like("code", query.getCode().replace("*", "%").replace("?", "_")));
        } else {/*from w w w .  j a  v  a2 s.  c o m*/
            criteria.add(Restrictions.eq("code", query.getCode()));
        }
    }
    if (query.getName() != null && !query.getName().equals("")) {
        if (query.getName().contains("*") || query.getName().contains("?")) {
            criteria.add(Restrictions.like("name", query.getName().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Restrictions.eq("name", query.getName()));
        }
    }
    if (query.getPaymentBy() != null && !query.getPaymentBy().equals("")) {
        criteria.createAlias("paymentBy", "p", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("p.code", query.getCode()));
    }
    if (query.getPaymentDateFrom() != null) {
        criteria.add(Restrictions.ge("paymentDate", query.getPaymentDateFrom()));
    }
    if (query.getPaymentDateTo() != null) {
        criteria.add(Restrictions.le("paymentDate", query.getPaymentDateTo()));
    }
    if (query.getDepartment() != null && query.getDepartment() != 0) {
        criteria.createAlias("department", "d", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("d.id", query.getDepartment()));
    }
    if (query.getBranch() != null && query.getBranch() != 0) {
        criteria.createAlias("branch", "b", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("b.id", query.getBranch()));
    }
    long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString()))
            .uniqueResult();

    criteria.setProjection(null);

    int start = ((query.getPage() - 1) * pageSize);

    // fetch assco
    criteria.setFetchMode("paymentBy", FetchMode.JOIN);
    criteria.setFetchMode("department", FetchMode.JOIN);
    criteria.setFetchMode("branch", FetchMode.JOIN);

    List<Payment> result = criteria.setResultTransformer(Criteria.ROOT_ENTITY).setFirstResult(start)
            .setMaxResults(pageSize).list();

    long totalPage = totalRecord / pageSize;
    if ((totalRecord % pageSize) > 0) {
        totalPage++;
    }
    List<Integer> pages = new ArrayList<Integer>();
    for (int index = 1; index <= totalPage; index++) {
        pages.add(index);
    }

    Map data = new HashMap();
    data.put("list", result);
    data.put("totalPage", totalPage);
    data.put("totalRecord", totalRecord);
    data.put("pages", pages);

    System.out.println(pages.size());
    return data;
}

From source file:com.arg.arsoft.siantluis.repository.imp.ProductRepository.java

@Override
public Product findByKey(Integer key) {
    Criteria criteria = factory.getCurrentSession().createCriteria(Product.class);
    criteria.add(Restrictions.eq("id", key));
    criteria.setFetchMode("supplier", FetchMode.JOIN);
    List<Product> result = criteria.setResultTransformer(Criteria.ROOT_ENTITY).list();
    if (result != null && result.size() > 0) {
        return result.get(0);
    } else {/*from  ww w  .j  av a 2 s  .c  o m*/
        return null;
    }
}

From source file:com.arg.arsoft.siantluis.repository.imp.ProjectRepository.java

@Override
public Project findByKey(Integer key) {
    Criteria criteria = factory.getCurrentSession().createCriteria(Project.class);
    criteria.add(Restrictions.eq("id", key));
    criteria.setFetchMode("items", FetchMode.JOIN);
    criteria.setFetchMode("items.frms", FetchMode.JOIN);
    criteria.setFetchMode("items.frms.productGroup", FetchMode.JOIN);
    List<Project> result = criteria.list();
    if (result != null && result.size() > 0) {
        return result.get(0);
    } else {/*from ww w.  j  a  va  2s .  c o  m*/
        return null;
    }
}

From source file:com.arg.arsoft.siantluis.repository.imp.PurchaseRepository.java

@Override
public Purchase findByKey(Integer key) {
    Criteria criteria = factory.getCurrentSession().createCriteria(Purchase.class);
    criteria.add(Restrictions.eq("id", key));
    criteria.setFetchMode("approveBy", FetchMode.JOIN);
    criteria.setFetchMode("purchaseBy", FetchMode.JOIN);
    criteria.setFetchMode("department", FetchMode.JOIN);
    criteria.setFetchMode("supplier", FetchMode.JOIN);
    criteria.setFetchMode("branch", FetchMode.JOIN);

    criteria.setFetchMode("products", FetchMode.JOIN);
    criteria.setFetchMode("services", FetchMode.JOIN);
    criteria.setFetchMode("products.product", FetchMode.JOIN);
    criteria.setFetchMode("services.service", FetchMode.JOIN);

    List<Purchase> result = criteria.list();
    if (result != null && result.size() > 0) {
        return result.get(0);
    } else {//from w w  w . ja v a  2  s . c o  m
        return null;
    }
}

From source file:com.arg.arsoft.siantluis.repository.imp.PurchaseRepository.java

@Override
public Map findByQuery(PurchaseQuery query) {
    int pageSize = Configs.PAGE_SIZE;
    Criteria criteria = factory.getCurrentSession().createCriteria(Purchase.class);
    if (query.getCode() != null && !query.getCode().equals("")) {
        if (query.getCode().contains("*") || query.getCode().contains("?")) {
            criteria.add(Restrictions.like("code", query.getCode().replace("*", "%").replace("?", "_")));
        } else {/*from  w  w w. j a va2s .  com*/
            criteria.add(Restrictions.eq("code", query.getCode()));
        }
    }
    if (query.getName() != null && !query.getName().equals("")) {
        if (query.getName().contains("*") || query.getName().contains("?")) {
            criteria.add(Restrictions.like("name", query.getName().replace("*", "%").replace("?", "_")));
        } else {
            criteria.add(Restrictions.eq("name", query.getName()));
        }
    }
    if (query.getPurchaseDateStart() != null) {
        criteria.add(Restrictions.ge("purchaseDate", query.getPurchaseDateStart()));
    }
    if (query.getPurchaseDateEnd() != null) {
        criteria.add(Restrictions.le("purchaseDate", query.getPurchaseDateEnd()));
    }
    if (query.getPurchaseBy() != null && !query.getPurchaseBy().equals("")) {
        criteria.createAlias("purchaseBy", "e", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("e.code", query.getPurchaseBy()));
    }
    if (query.getSupplier() != null && !query.getSupplier().equals("")) {
        criteria.createAlias("supplier", "s", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("s.code", query.getSupplier()));
    }
    if (query.getDepartment() != null && query.getDepartment() != 0) {
        criteria.createAlias("department", "d", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("d.id", query.getDepartment()));
    }
    if (query.getBranch() != null && query.getBranch() != 0) {
        criteria.createAlias("branch", "b", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("b.id", query.getBranch()));
    }
    if (query.getStatus() != null && !query.getStatus().equals("")) {
        PurchaseStatus status = PurchaseStatus.valueOf(query.getStatus());
        criteria.add(Restrictions.eq("status", status));
    }

    long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString()))
            .uniqueResult();
    criteria.setProjection(null);
    int start = ((query.getPage() - 1) * pageSize);
    criteria.setFetchMode("department", FetchMode.JOIN);
    criteria.setFetchMode("branch", FetchMode.JOIN);
    criteria.setFetchMode("supplier", FetchMode.JOIN);
    criteria.setFetchMode("purchaseBy", FetchMode.JOIN);
    List<Purchase> result = criteria.setFirstResult(start).setMaxResults(pageSize)
            .setResultTransformer(Criteria.ROOT_ENTITY).list();

    long totalPage = totalRecord / pageSize;
    if ((totalRecord % pageSize) > 0) {
        totalPage++;
    }
    List<Integer> pages = new ArrayList<Integer>();
    for (int index = 1; index <= totalPage; index++) {
        pages.add(index);
    }

    Map data = new HashMap();
    data.put("list", result);
    data.put("totalPage", totalPage);
    data.put("totalRecord", totalRecord);
    data.put("pages", pages);

    System.out.println(pages.size());
    return data;
}

From source file:com.arg.arsoft.siantluis.repository.imp.ReservationRepository.java

@Override
public Reservation findByKey(Integer key) {
    Criteria criteria = factory.getCurrentSession().createCriteria(Reservation.class);
    criteria.add(Restrictions.eq("id", key));

    // Fetch Relation
    criteria.setFetchMode("reservationBy", FetchMode.JOIN);
    criteria.setFetchMode("approveBy", FetchMode.JOIN);
    criteria.setFetchMode("attachment", FetchMode.JOIN);

    // Fetch Collection
    criteria.setFetchMode("rooms", FetchMode.JOIN);
    criteria.setFetchMode("its", FetchMode.JOIN);
    criteria.setFetchMode("motors", FetchMode.JOIN);
    criteria.setFetchMode("rooms.equipment", FetchMode.JOIN);
    criteria.setFetchMode("its.equipment", FetchMode.JOIN);
    criteria.setFetchMode("motors.equipment", FetchMode.JOIN);

    List<Reservation> result = criteria.list();
    if (result != null && result.size() > 0) {
        return result.get(0);
    } else {/*from w  w w . j  a va 2  s  .c  om*/
        return null;
    }

}

From source file:com.arg.arsoft.siantluis.repository.imp.ReservationRepository.java

@Override
public Map findByQuery(ReservationQuery query) {
    int pageSize = Configs.PAGE_SIZE;
    Criteria criteria = factory.getCurrentSession().createCriteria(Reservation.class);
    if (query.getCode() != null && !query.getCode().equals("")) {
        if (query.getCode().contains("*") || query.getCode().contains("?")) {
            criteria.add(Restrictions.like("code", query.getCode().replace("*", "%").replace("?", "_")));
        } else {//from  w w w.  java 2 s. c o  m
            criteria.add(Restrictions.eq("code", query.getCode()));
        }
    }
    if (query.getDescription() != null && !query.getDescription().equals("")) {
        if (query.getDescription().contains("*") || query.getDescription().contains("?")) {
            criteria.add(Restrictions.like("description",
                    query.getDescription().replace("*", "%").replace("?", "*")));
        } else {
            criteria.add(Restrictions.eq("description", query.getDescription()));
        }
    }
    if (query.getRequestBy() != null && !query.getRequestBy().equals("")) {
        criteria.createAlias("reservationBy", "em", JoinType.LEFT_OUTER_JOIN);
        criteria.add(Restrictions.eq("em.code", query.getRequestBy()));
    }
    if (query.getReservationDateFrom() != null) {
        criteria.add(Restrictions.ge("reservationDate", query.getReservationDateFrom()));
    }
    if (query.getReservationDateTo() != null) {
        criteria.add(Restrictions.le("reservationDate", query.getReservationDateTo()));
    }

    long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString()))
            .uniqueResult();
    int start = ((query.getPage() - 1) * pageSize);

    criteria.setProjection(null);

    criteria.setFetchMode("reservationBy", FetchMode.JOIN);

    List<Reservation> result = criteria.setFirstResult(start).setMaxResults(pageSize)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).list();
    long totalPage = totalRecord / pageSize;
    if ((totalRecord % pageSize) > 0) {
        totalPage++;
    }
    List<Integer> pages = new ArrayList<Integer>();
    for (int index = 1; index <= totalPage; index++) {
        pages.add(index);
    }
    Map data = new HashMap();
    data.put("list", result);
    data.put("totalPage", totalPage);
    data.put("totalRecord", totalRecord);
    data.put("pages", pages);

    return data;
}

From source file:com.arg.arsoft.siantluis.repository.imp.SupplierRepository.java

@Override
public Supplier findByKey(Integer key) {
    Criteria criteria = factory.getCurrentSession().createCriteria(Supplier.class);
    criteria.setFetchMode("address", FetchMode.JOIN);
    criteria.setFetchMode("contact", FetchMode.JOIN);
    criteria.setFetchMode("address.province", FetchMode.JOIN);
    criteria.setFetchMode("address.amphur", FetchMode.JOIN);

    criteria.add(Expression.eq("id", key));
    List<Supplier> result = criteria.list();
    if (result != null && result.size() > 0) {
        return result.get(0);
    } else {/*  www  . ja va  2  s .co m*/
        return null;
    }
}