List of usage examples for org.hibernate Criteria createAlias
@Deprecated public Criteria createAlias(String associationPath, String alias, int joinType) throws HibernateException;
From source file:com.amalto.core.storage.hibernate.EntityFinder.java
License:Open Source License
/** * Starting from <code>wrapper</code>, goes up the containment tree using references introspection in metadata. * @param wrapper A {@link Wrapper} instance (so an object managed by {@link HibernateStorage}. * @param storage A {@link HibernateStorage} instance. It will be used to compute references from the internal * data model./* w w w .jav a 2 s . c om*/ * @param session A Hibernate {@link Session}. * @return The top level (aka the Wrapper instance that represent a MDM entity). */ public static Wrapper findEntity(Wrapper wrapper, HibernateStorage storage, Session session) { ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); if (!(contextClassLoader instanceof StorageClassLoader)) { throw new IllegalStateException("Expects method to be called in the context of a storage operation."); } StorageClassLoader classLoader = (StorageClassLoader) contextClassLoader; ComplexTypeMetadata wrapperType = classLoader.getTypeFromClass(wrapper.getClass()); if (wrapperType == null) { throw new IllegalArgumentException( "Wrapper '" + wrapper.getClass().getName() + "' isn't known in current storage."); } if (wrapperType.isInstantiable()) { return wrapper; } InboundReferences incomingReferences = new InboundReferences(wrapperType); InternalRepository internalRepository = storage.getTypeEnhancer(); Set<ReferenceFieldMetadata> references = internalRepository.getInternalRepository() .accept(incomingReferences); if (references.isEmpty()) { throw new IllegalStateException("Cannot find container type for '" + wrapperType.getName() + "'."); } String keyFieldName = wrapperType.getKeyFields().iterator().next().getName(); Object id = wrapper.get(keyFieldName); for (ReferenceFieldMetadata reference : references) { ComplexTypeMetadata containingType = reference.getContainingType(); Class<? extends Wrapper> clazz = classLoader.getClassFromType(containingType); Criteria criteria = session.createCriteria(clazz, "a0"); //$NON-NLS-1$ criteria.createAlias("a0." + reference.getName(), "a1", CriteriaSpecification.INNER_JOIN); //$NON-NLS-1$ criteria.add(Restrictions.eq("a1." + keyFieldName, id)); //$NON-NLS-1$ List list = criteria.list(); if (!list.isEmpty()) { Wrapper container = (Wrapper) list.get(0); if (list.size() > 1) { Object previousItem = list.get(0); for (int i = 1; i < list.size(); i++) { Object currentItem = list.get(i); if (!previousItem.equals(currentItem)) { throw new IllegalStateException("Expected contained instance to have only one owner."); } previousItem = currentItem; } } return findEntity(container, storage, session); } } return null; }
From source file:com.arg.arsoft.siantluis.repository.imp.CustomerRepository.java
@Override public Map findByQuery(CustomerQuery query) { int pageSize = Configs.PAGE_SIZE; Criteria criteria = factory.getCurrentSession().createCriteria(Customer.class); if (query.getCode() != null && !query.getCode().equals("")) { if (query.getCode().contains("*") || query.getCode().contains("?")) { criteria.add(Expression.like("code", query.getCode().replace("*", "%").replace("?", "_"))); } else {//from w w w .jav a 2 s .com criteria.add(Expression.eq("code", query.getCode())); } } if (query.getName() != null && !query.getName().equals("")) { if (query.getName().contains("*") || query.getName().contains("?")) { criteria.add(Expression.like("name", query.getName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("name", query.getName())); } } if (query.getCompany() != null && !query.getCompany().equals("")) { if (query.getCompany().contains("*") || query.getCompany().contains("?")) { criteria.add(Expression.like("company", query.getCompany().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("company", query.getCompany())); } } if (query.getContactName() != null && !query.getContactName().equals("")) { if (query.getContactName().contains("*") || query.getContactName().contains("?")) { criteria.add(Expression.like("contact.contactName", query.getContactName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("contact.contactName", query.getContactName())); } } if (query.getProvince() != null && query.getProvince() != 0) { criteria.createAlias("address.province", "p", JoinType.LEFT_OUTER_JOIN); criteria.add(Expression.eq("p.id", query.getProvince())); } List<CustomerType> types = new ArrayList<CustomerType>(); if (query.getFlagCompany().equals("Y")) { types.add(CustomerType.C); } if (query.getFlagPersonal().equals("Y")) { types.add(CustomerType.P); } if (types.size() > 0) { criteria.add(Expression.in("customerType", types.toArray())); } long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString())) .uniqueResult(); criteria.setProjection(null); int start = ((query.getPage() - 1) * pageSize); criteria.setFetchMode("address.province", FetchMode.JOIN); criteria.setFetchMode("address.amphur", FetchMode.JOIN); List<Customer> 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.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 {//from w w w . j av a 2 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.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 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 {// w w w . java 2 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 Map findByQuery(ProductQuery query) { int pageSize = Configs.PAGE_SIZE; Criteria criteria = factory.getCurrentSession().createCriteria(Product.class); if (query.getCode() != null && !query.getCode().equals("")) { if (query.getCode().contains("*") || query.getCode().contains("?")) { criteria.add(org.hibernate.criterion.Restrictions.like("code", query.getCode().replace("*", "%").replace("?", "_"))); } else {/* www. java 2s. co m*/ criteria.add(org.hibernate.criterion.Restrictions.eq("code", query.getCode())); } } if (query.getName() != null && !query.getName().equals("")) { if (query.getName().contains("*") || query.getName().contains("?")) { criteria.add(org.hibernate.criterion.Restrictions.like("name", query.getName().replace("*", "%").replace("?", "_"))); } else { criteria.add(org.hibernate.criterion.Restrictions.eq("name", query.getName())); } } if (query.getSupplier() != null && !query.getSupplier().equals("")) { criteria.createAlias("supplier", "s", JoinType.LEFT_OUTER_JOIN); criteria.add(org.hibernate.criterion.Restrictions.eq("s.code", query.getSupplier())); } if (query.getActive() != null && !query.getActive().equals("")) { ProductActive active = ProductActive.valueOf(query.getActive()); criteria.add(org.hibernate.criterion.Restrictions.eq("active", active)); } long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString())) .uniqueResult(); int start = ((query.getPage() - 1) * pageSize); criteria.setProjection(null); criteria.setFetchMode("supplier", FetchMode.EAGER); List<Product> 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); return data; }
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 v a 2 s . co 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.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 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 www .j a v a 2s . 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 Map findByQuery(SupplierQuery query) { int pageSize = Configs.PAGE_SIZE; Criteria criteria = factory.getCurrentSession().createCriteria(Supplier.class); // criteria.createAlias("address.amphur","a",JoinType.LEFT_OUTER_JOIN); if (query.getCode() != null && !query.getCode().equals("")) { if (query.getCode().contains("*") || query.getCode().contains("?")) { criteria.add(Expression.like("code", query.getCode().replace("*", "%").replace("?", "_"))); } else {//from w w w . j av a 2 s . c om criteria.add(Expression.eq("code", query.getCode())); } } if (query.getName() != null && !query.getName().equals("")) { if (query.getName().contains("*") || query.getName().contains("?")) { criteria.add(Expression.like("name", query.getName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("name", query.getName())); } } if (query.getCompany() != null && !query.getCompany().equals("")) { if (query.getCompany().contains("*") || query.getCompany().contains("?")) { criteria.add(Expression.like("compny", query.getCompany().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("compny", query.getCompany())); } } if (query.getContactName() != null && !query.getContactName().equals("")) { if (query.getContactName().contains("*") || query.getContactName().contains("?")) { criteria.add(Expression.like("contact.contactName", query.getContactName().replace("*", "%").replace("?", "_"))); } else { criteria.add(Expression.eq("contact.contactName", query.getContactName())); } } if (query.getProvince() != null && query.getProvince() != 0) { criteria.createAlias("address.province", "p", JoinType.LEFT_OUTER_JOIN); criteria.add(Expression.eq("p.id", query.getProvince())); } long totalRecord = (long) criteria.setProjection(Projections.count(Projections.id().toString())) .uniqueResult(); criteria.setProjection(null); int start = ((query.getPage() - 1) * pageSize); criteria.setFetchMode("address.province", FetchMode.JOIN); criteria.setFetchMode("address.amphur", FetchMode.JOIN); List<Supplier> 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.cubeia.backoffice.users.dao.UserDAOImpl.java
License:Open Source License
private Criteria createFindUserCriteria(Long userId, Long operatorId, String name, Collection<UserStatus> includeStatuses, int offset, int limit, UserOrder order, boolean ascending) { Session hbSession = getHibernateSession(); Criteria c = hbSession.createCriteria(User.class); c.createAlias("information", "information", JoinType.LEFT_OUTER_JOIN); c.setFetchMode("attributes", FetchMode.SELECT); if (userId != null) { c.add(eq("id", userId)); }//w w w. j a va2 s . co m if (operatorId != null) { c.add(eq("operatorId", operatorId)); } if (name != null && !name.isEmpty()) { c.add(Restrictions.disjunction().add(like("userName", name)).add(like("information.firstName", name)) .add(like("information.lastName", name))); } if (includeStatuses != null) { c.add(Restrictions.in("status", includeStatuses)); } if (order != null) { if (ascending) { c.addOrder(Order.asc(order.getColumnName())); } else { c.addOrder(Order.desc(order.getColumnName())); } } c.setFirstResult(offset); c.setMaxResults(limit); return c; }
From source file:com.denimgroup.threadfix.data.dao.hibernate.HibernateEventDao.java
License:Mozilla Public License
private Criteria getEventCriteria(List<String> eventActions, User user, Date startTime, Date stopTime, Set<Integer> appIds, Set<Integer> teamIds, Set<Integer> vulnIds, Set<Integer> defectIds) { Criteria criteria = getSession().createCriteria(getClassReference()).add(Restrictions.eq("active", true)); criteria.createAlias("scan", "scan", Criteria.LEFT_JOIN); criteria.createAlias("application", "application", Criteria.LEFT_JOIN); criteria.createAlias("application.organization", "application.organization", Criteria.LEFT_JOIN); criteria.createAlias("vulnerability", "vulnerability", Criteria.LEFT_JOIN); criteria.createAlias("defect", "defect", Criteria.LEFT_JOIN); if ((eventActions != null) && (!eventActions.isEmpty())) { criteria.add(Restrictions.in("eventAction", eventActions)); }//ww w .j a va 2 s. co m if (user != null) { criteria.add(Restrictions.eq("user", user)); } if (startTime != null) { criteria.add(Restrictions.ge("date", startTime)); } if (stopTime != null) { criteria.add(Restrictions.lt("date", stopTime)); } Criterion associationRestrictions = null; if ((appIds != null) && (!appIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("application.id", appIds)); } if ((teamIds != null) && (!teamIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("application.organization.id", teamIds)); } if ((vulnIds != null) && (!vulnIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("vulnerability.id", vulnIds)); if ((defectIds != null) && (!defectIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions .and(Restrictions.in("defect.id", defectIds), Restrictions.isNull("vulnerability.id"))); } } else if ((defectIds != null) && (!defectIds.isEmpty())) { associationRestrictions = disjoinRestrictions(associationRestrictions, Restrictions.in("defect.id", defectIds)); } if (associationRestrictions != null) { criteria.add(associationRestrictions); } Order order = getOrder(); if (order != null) { criteria.addOrder(order); } return criteria; }