您的示例直接来自 API 文档,不幸的是,这些文档呈现不佳。
您的注释应该放在某个类上,可能是您将在其中创建查询以使用结果集映射的类。然而,这个注解的放置位置实际上并不重要。您的 JPA 提供者实际上会维护所有这些映射的全局列表,因此无论您在哪里定义它,您都可以在任何地方使用它。
这是注解方法的一个缺点(与在 XML 中指定事物相反)。JPA 中的许多其他事物(即命名查询)都是以同样的方式定义的。这使得被定义的事物与注释它的类之间似乎存在某种联系,而实际上并非如此。
我有以下 Java 6 代码:
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 );
@SqlResultSetMapping( name='TripResults',
entities={
@EntityResult( entityClass=TripEntity.class ),
@EntityResult( entityClass=CommercialTripEntity.class )
}
)
我收到最后一个右括号的语法错误。 Eclipse 给出:“插入 EnumBody 以完成块语句”和“插入枚举标识符以完成 EnumHeaderName”。来自 javac 的类似语法错误。
我做错了什么?