Критерии гибернации не работают должным образомJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Критерии гибернации не работают должным образом

Сообщение Anonymous »

Я застрял в старом проекте и никогда раньше не использовал критерии спящего режима. Это база данных Oracle.
У меня есть запрос, в котором используются критерии. Вот критерии свалены.

Код: Выделить всё

criteria:CriteriaImpl(com.jsi.fullcourt.domain.caserole.Statute:st[][st.revision=Revision{id=1, description='201908', effectiveDate=2019-08-26, endDate=null, basedOn=null, statutes=37, uniqueBy='Statute Number'}, st.expungedIndicator=false, st.effectiveDate>=1971-01-09, st.inactive=false])
Этот запрос не возвращает строк.
Я думаю, это тот же запрос:

Код: Выделить всё

select id, JSI_NUMBER, DESCRIPTION, EFFECTIVE_DATE, INACTIVE, INACTIVE_DATE, REVISION_ID, EXPUNGED_INDICATOR, COMMON
from STATUTE
where REVISION_ID = 1
and EFFECTIVE_DATE >= to_date('1971-01-09', 'YYYY-MM-DD')
and EXPUNGED_INDICATOR = 0
and INACTIVE = 0
order by JSI_NUMBER;
И это возвращает одну строку.
Вот код, который создает критерии:

Код: Выделить всё

private Criteria getStatuteLookupCommonCriteria(StatuteLookupCriteria statuteLookupCriteria) {
System.err.println("getStatuteLookupCommonCriteria()");
Revision revision = null;

if (statuteLookupCriteria == null) {
return null;
}

if (statuteLookupCriteria.getRevisionId() == null) {
List revisions = ThreadSession.getSession().createCriteria(Revision.class).addOrder(Order.desc("effectiveDate")).list();
revision = revisions.get(0);
} else {
revision = (Revision) ThreadSession.getSession().get(Revision.class, statuteLookupCriteria.getRevisionId());
}

final Criteria criteria = ThreadSession.getSession().createCriteria(Statute.class, "st") //
.add(Restrictions.eq("st.revision", revision)) //
.add(Restrictions.eq("st.expungedIndicator", Boolean.FALSE));

if (SEARCH_TYPE_AOC.equalsIgnoreCase(statuteLookupCriteria.getSearchType())) {
if (isNotBlank(statuteLookupCriteria.getStatuteAocCode())) {
if (FCEPropertyUtils.isVariant(Variant.VA)) {
criteria.add(Restrictions.ilike("st.aocCode", statuteLookupCriteria.getStatuteAocCode(), MatchMode.START));
} else {
criteria.add(Restrictions.eq("st.aocCode", statuteLookupCriteria.getStatuteAocCode()));
}
}
} else {
String statuteMatchOn = isNotBlank(statuteLookupCriteria.getStatuteMatchOn()) && isStartMatch(statuteLookupCriteria.getStatuteMatchOn())
? statuteLookupCriteria.getStatuteMatchOn()
: MATCH_ANYWHERE;
MatchMode numberMatchMode = getFieldMatchMode(statuteLookupCriteria.getStatuteNumber(), statuteMatchOn);
MatchMode descriptionMatchMode = getFieldMatchMode(statuteLookupCriteria.getStatuteDescription(), statuteMatchOn);

if (isNotBlank(statuteLookupCriteria.getStatuteDescription())) {
criteria.add(Restrictions.ilike("st.description", formatValueWithSquareBrackets(statuteLookupCriteria.getStatuteDescription()),
descriptionMatchMode));
}
if (isNotBlank(statuteLookupCriteria.getStatuteNumber())) {
criteria.add(Restrictions.ilike("st.number", formatStatuteNumberForCriteria(statuteLookupCriteria.getStatuteNumber(), statuteMatchOn),
numberMatchMode));
}
if (statuteLookupCriteria.isStatuteCommon()) {
criteria.add(Restrictions.eq("st.common", Boolean.TRUE));
}

final LocalDate effectiveDate = statuteLookupCriteria.getStatuteEffectiveDate();
System.err.println("effectiveDate:" + effectiveDate);
if (effectiveDate != null) {
System.err.println("adding effectiveDate");
criteria.add(Restrictions.ge("st.effectiveDate", Date.valueOf(effectiveDate)));
}

final LocalDate inactiveDate = statuteLookupCriteria.getStatuteInactiveDate();
System.err.println("inactiveDate:"  + inactiveDate);
if (inactiveDate != null) {
System.err.println("adding inactiveDate");
criteria.add(Restrictions.le("st.inactiveDate", Date.valueOf(inactiveDate)));
}
}

if (!CollectionUtils.isEmpty(statuteLookupCriteria.getStatuteDegreeIds())) {
criteria.createAlias("st.degree", "d");
criteria.add(Restrictions.in("d.ID", statuteLookupCriteria.getStatuteDegreeIds()));
}
if (!CollectionUtils.isEmpty(statuteLookupCriteria.getStatuteReportingCodeIds())) {
criteria.createAlias("st.reportingCodes", "rc");
criteria.add(Restrictions.in("rc.ID", statuteLookupCriteria.getStatuteReportingCodeIds()));
}

if (VIEW_ACTIVE.equalsIgnoreCase(statuteLookupCriteria.getViewType()) || VIEW_INACTIVE.equalsIgnoreCase(statuteLookupCriteria.getViewType())) {
criteria.add(Restrictions.eq("st.inactive", VIEW_INACTIVE.equalsIgnoreCase(statuteLookupCriteria.getViewType()) ? Boolean.TRUE : Boolean.FALSE));
}

System.err.println("criteria:" + criteria);
return criteria;
}
Чего мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/798 ... s-expected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»