Я пытаюсь сопоставить результаты собственного запроса с POJO, используя @SqlResultSetMapping с @ConstructorResult. Вот мой код:
@SqlResultSetMapping(name="foo",
classes = {
@ConstructorResult(
targetClass = Bar.class,
columns = {
@ColumnResult(name = "barId", type = Long.class),
@ColumnResult(name = "barName", type = String.class),
@ColumnResult(name = "barTotal", type = Long.class)
})
})
public class Bar {
private Long barId;
private String barName;
private Long barTotal;
...
И затем в моем DAO:
Query query = em.createNativeQueryBar(QUERY, "foo");
... set some parameters ...
List<Bar> list = (List<Bar>) query.getResultList();
Я читал, что эта функция поддерживается только в JPA 2.1, но это то, что я использую. Здесь моя зависимость:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
Я нашел несколько ресурсов, включая этот: @ConstructorResult mapping в jpa 2.1. Но мне все еще не повезло.
Что мне не хватает? Почему невозможно найти SqlResultSetMapping?
javax.persistence.PersistenceException: org.hibernate.MappingException: Unknown SqlResultSetMapping [foo]