Как использовать несколько критериев .add (ограничения) - PullRequest
0 голосов
/ 01 июля 2018

Могу ли я использовать несколько критериев.адд? В случае, если я хочу

public ArrayList<Support> SearchSupportby(int appId ,String unikey,Timestamp formDate ,) {
     Criteria criteria = getSession().createCriteria(Support.class, "support");
     if(unikey!=null) {
     criteria.add(Restrictions.eq("support.uuId",unikey));
     }
     if(appId!=null){
     criteria.add(Restrictions.eq("support.applicationId",appId));
     }
     if(formdate!=null){
    criteria.add(Restrictions.eq("support.reportDate", formDate));
     }
}

Это может помочь. Я использую

Пружинный ботинок 1.2.5

Hibernate 4.3.6

*** После изменения использовать JPA, я просто знаю простой способ

Conjunction objConjunction = Restrictions.conjunction(); 
objConjunction.add(Restrictions **your Query A **  );
objConjunction.add(Restrictions **your Query B **  );
objConjunction.add(Restrictions **your Query C **  );
criteria.add(objConjunction);

Ответы [ 2 ]

0 голосов
/ 01 июля 2018

Я поделился несколькими критериями, используя спящие творения. Вы можете проверить соответственно, так как я ожидаю все параметры.

public List<Support> SearchSupportby(int appId ,String unikey,Timestamp formDate ,) {
 Criteria cr = getSession().createCriteria(Support.class, "support");
 Criterion rest1 = Restrictions.or(Restrictions.eq("support.uuId",unikey));
 Criterion rest2 = Restrictions.or(Restrictions.eq("support.applicationId",appId));
 Criterion rest3 = Restrictions.or(Restrictions.eq("support.reportDate", formDate));
 cr.add(Restrictions.and(rest1, rest2, rest3));//according to parameter you can validate it
 cr.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
 if (cr.list() == null || cr.list().isEmpty()) {
        return null;
    }
return cr.list();}
0 голосов
/ 01 июля 2018

Вы открываете данные jpa вместо Hibernate явно. Вы можете использовать множественное добавление нескольких критериев.add (), но если вы используете весеннюю загрузку, нет необходимости делать это вручную.

Вы можете определить хранилище для объекта поддержки, расширив JpaRepository.

interface SupportRepository extends JpaRepository<Support,Long>{

}

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/

Вы можете использовать Спецификацию для нескольких условий. https://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-four-jpa-criteria-queries/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...