Hibernate Restrictions.in против Disjunction

Помимо меньшего количества кода, в чем разница между следующими двумя подходами к созданию предложения IN с использованием API критериев Hibernate? Есть ли проблемы с производительностью? Есть ли какая-то логика в поиске, который мне не хватает? Кажется, что они оба работают одинаково в отношении возвращаемых строк.

Disjunction disj = Restrictions.disjunction();
for (String value : stringArray) {
     disj.add(Restrictions.eq("code", value));
}
where.add(disj);

VS.

Restrictions.in("code", stringArray);

Причина, по которой я спрашиваю, заключается в том, что я рефакторирую устаревший код там, где существует первый, но я ожидал второго. Если они оба одинаковы, я оставлю старый код в покое.

15
задан Mikko Maunu 5 June 2014 в 19:17
поделиться