mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#869 - Clash on bind hash value for query cache with consecutive values of "01","20" and "02", "10"
This commit is contained in:
@@ -120,9 +120,9 @@ class AllEqualsExpression extends NonPrepareExpression {
|
||||
@Override
|
||||
public int queryBindHash() {
|
||||
|
||||
int hc = 31;
|
||||
int hc = 92821;
|
||||
for (Object value : propMap.values()) {
|
||||
hc = hc * 31 + (value == null ? 0 : value.hashCode());
|
||||
hc = hc * 92821 + (value == null ? 0 : value.hashCode());
|
||||
}
|
||||
|
||||
return hc;
|
||||
|
||||
+1
-1
@@ -52,7 +52,7 @@ public class ArrayContainsExpression extends AbstractExpression {
|
||||
public int queryBindHash() {
|
||||
int hc = values[0].hashCode();
|
||||
for (int i = 1; i < values.length; i++) {
|
||||
hc = hc * 31 + values[i].hashCode();
|
||||
hc = hc * 92821 + values[i].hashCode();
|
||||
}
|
||||
return hc;
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class ArrayIsEmptyExpression extends AbstractExpression {
|
||||
|
||||
@Override
|
||||
public int queryBindHash() {
|
||||
return empty ? 0 : 31;
|
||||
return empty ? 0 : 92821;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -54,7 +54,7 @@ class BetweenExpression extends AbstractExpression {
|
||||
@Override
|
||||
public int queryBindHash() {
|
||||
int hc = low().hashCode();
|
||||
hc = hc * 31 + high().hashCode();
|
||||
hc = hc * 92821 + high().hashCode();
|
||||
return hc;
|
||||
}
|
||||
|
||||
|
||||
+1
-2
@@ -230,9 +230,8 @@ public class DefaultExampleExpression implements SpiExpression, ExampleExpressio
|
||||
public int queryBindHash() {
|
||||
int hc = DefaultExampleExpression.class.getName().hashCode();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
hc = hc * 31 + list.get(i).queryBindHash();
|
||||
hc = hc * 92821 + list.get(i).queryBindHash();
|
||||
}
|
||||
|
||||
return hc;
|
||||
}
|
||||
|
||||
|
||||
@@ -511,7 +511,7 @@ public class DefaultExpressionList<T> implements SpiExpressionList<T> {
|
||||
public int queryBindHash() {
|
||||
int hash = DefaultExpressionList.class.getName().hashCode();
|
||||
for (int i = 0, size = list.size(); i < size; i++) {
|
||||
hash = hash * 31 + list.get(i).queryBindHash();
|
||||
hash = hash * 92821 + list.get(i).queryBindHash();
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
|
||||
@@ -119,9 +119,9 @@ class InExpression extends AbstractExpression {
|
||||
|
||||
@Override
|
||||
public int queryBindHash() {
|
||||
int hc = 31;
|
||||
int hc = 92821;
|
||||
for (int i = 0; i < bindValues.length; i++) {
|
||||
hc = 31 * hc + bindValues[i].hashCode();
|
||||
hc = 92821 * hc + bindValues[i].hashCode();
|
||||
}
|
||||
return hc;
|
||||
}
|
||||
|
||||
@@ -79,7 +79,7 @@ class JsonPathExpression extends AbstractExpression {
|
||||
@Override
|
||||
public int queryBindHash() {
|
||||
int hc = (value == null) ? 0 : value.hashCode();
|
||||
hc = (upperValue == null) ? hc : hc * 31 + upperValue.hashCode();
|
||||
hc = (upperValue == null) ? hc : hc * 92821 + upperValue.hashCode();
|
||||
return hc;
|
||||
}
|
||||
|
||||
|
||||
@@ -204,7 +204,7 @@ class JunctionExpression<T> implements SpiJunction<T>, SpiExpression, Expression
|
||||
int hc = JunctionExpression.class.getName().hashCode();
|
||||
List<SpiExpression> list = exprList.internalList();
|
||||
for (int i = 0; i < list.size(); i++) {
|
||||
hc = hc * 31 + list.get(i).queryBindHash();
|
||||
hc = hc * 92821 + list.get(i).queryBindHash();
|
||||
}
|
||||
return hc;
|
||||
}
|
||||
|
||||
@@ -146,7 +146,7 @@ abstract class LogicExpression implements SpiExpression {
|
||||
@Override
|
||||
public int queryBindHash() {
|
||||
int hc = expOne.queryBindHash();
|
||||
hc = hc * 31 + expTwo.queryBindHash();
|
||||
hc = hc * 92821 + expTwo.queryBindHash();
|
||||
return hc;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user