@SqlResultSetMappings({
@SqlResultSetMapping(name = "alertMapping", columns = {
@ColumnResult(name = "accountId")})
})
@NamedNativeQuery(name = "alert",
query = " select distinct c.accountId from account c ",
resultSetMapping = "alertMapping")
Использование:
EntityManager em = ...... / injected / etc
TypedQuery<String> query = em.createNamedQuery("alert", String.class);
List<String> accountIds = query.getResultList();
(непроверенный синтаксис, но я надеюсь, что основная идея дойдет до конца)
Для NamedNativeQueries вы можете использовать resultClass только тогда, когда результат фактически отображается наСущность.Также возможно не указывать отображение результатов, в этом случае вы получите List
объекта [].Каждый элемент списка будет одной записью, и вам придется явно приводить каждый объект к нужному типу.Хм, последняя часть может быть доступна только для NativeQueries, но не по имени - извините, сейчас не уверены.