Assuming we have the following entity:
@Entity
@Table(name = "SOME_TABLE")
public class SomeDbo {
@Id
@Column(name = "ID", nullable = false)
private Long id;
@Column(name = "SOME_ENUM")
@Enumerated(EnumType.ORDINAL)
private ESomeEnum type;
}
and the following Data Access Object with a Query:
@Repository
@ApplicationScope
public interface SomeDao {
@Query("select distinct s.id, max(s.type) as mx from SomeDbo s group by s.id order by mx")
List<Object[]> findSomeMax();
}
would provide to the following exception:
This is a bit unpleasant as it was working well with Hibernate 5.6.x and still usage of:
@Query("select s from SomeDbo s where s.type = 1")
List<SomeDbo> findSomeOfTypeOne();
works fine in Hibernate 6.2.5. The possible workaround I see for now is by doing:
instead, which obviously changed the Object[1] type which needs to be converted in the code back to ESomeEnum type. It seems that Enum handling needs improvements, as I see several similar issues, e.g. https://hibernate.atlassian.net/browse/HHH-16445. |