Нечувствительный к регистру равняется использованию, в спящем режиме Критерии

Рассмотрите эти фрагменты кода:

def int_or_default(x, default=0):
    if x.isdigit():
        return int(x)
    else:
        return default

def int_or_default(x, default=0):
    try:
        return int(x)
    except ValueError:
        return default

Оба они выглядят правильно, не так ли? Но один из них - нет.

Первый, используя LBYL, терпит неудачу из-за тонкого различия между isdigit и isdecimal; когда вызывается со строкой «①²³

62
задан jon077 9 March 2009 в 14:16
поделиться

2 ответа

Остерегайтесь использования ilike, потому что оно позволило бы кому-то вводить вещи как "тестовый %" и соответствие. Я использую следующее, чтобы сделать нечувствительное к регистру равное по одному приложению:

...
Criteria crit=session.createCriteria(Event.class);
crit.add(Expression.eq("rsvpCode","test1").ignoreCase());
...
69
ответ дан John Wagenleitner 7 November 2019 в 12:58
поделиться

Я не абсолютно уверен, но когда Вы используете Restriction.eq, Вы получаете объект SimpleExpression, и что объект поддерживает ignoreCase () операция, которую я никогда не пытался использовать, но кажется, что это могло иметь значение.

Престижность для Спящего режима для того, чтобы не зарегистрировать то, что на самом деле делает этот метод.

7
ответ дан Uri 7 November 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: