Документы аннотаций Hibernate (http://www.hibernate.org/hib_docs/annotations/reference/en/html_single/) предполагают, что это должна быть аннотация на уровне класса, а не встроенная в ваш код. И действительно, когда я вставляю этот код в свою среду IDE и перемещаю его, возникают ошибки компиляции присутствуют, когда аннотация встроенная, но исчезает, когда я помещаю ее выше объявления класса:
@SqlResultSetMapping( name="TripResults",
entities={
@EntityResult( entityClass=TripEntity.class ),
@EntityResult( entityClass=CommercialTripEntity.class )
}
)
public class Foo {
public void bogus() {
Query q = em.createNativeQuery(
"select T.* " +
"from Trip T join Itinerary I on (T.itinerary_id=I.id) " +
"where I.launchDate between :start and :end " +
"or ADDDATE(I.launchDate, I.equipmentPullDayOfTrip) between :start and :end",
"TripResults" );
q.setParameter( "start", range.getStart(), TemporalType.DATE );
q.setParameter( "end", range.getEnd(), TemporalType.DATE );
}
}
... очевидно, у меня нет доказательств того, что приведенный выше код действительно будет работать. Я только подтвердил, что это не вызывает ошибки компиляции.