diff --git a/hibernate-core/src/main/java/org/hibernate/jpa/spi/NativeQueryConstructorTransformer.java b/hibernate-core/src/main/java/org/hibernate/jpa/spi/NativeQueryConstructorTransformer.java index c45bda1919ef..f65b2bcb84c3 100644 --- a/hibernate-core/src/main/java/org/hibernate/jpa/spi/NativeQueryConstructorTransformer.java +++ b/hibernate-core/src/main/java/org/hibernate/jpa/spi/NativeQueryConstructorTransformer.java @@ -24,7 +24,7 @@ public class NativeQueryConstructorTransformer implements TupleTransformer { private final Class resultClass; - private Constructor constructor; + private transient Constructor constructor; private Constructor constructor(Object[] elements) { if ( constructor == null ) { @@ -75,4 +75,16 @@ public T transformTuple(Object[] tuple, String[] aliases) { throw new InstantiationException( "Cannot instantiate query result type", resultClass, e ); } } + + @Override + public boolean equals(Object obj) { + return obj instanceof NativeQueryConstructorTransformer that + && this.resultClass == that.resultClass; + // should be safe to ignore the cached constructor here + } + + @Override + public int hashCode() { + return resultClass.hashCode(); + } }