【JPA】JPA本地查询注解SqlResultSetMapping的使用
2013-03-04 21:45
351 查看
配置最后的形式: @SqlResultSetMapping ( name = "ItemResults", entities = { @EntityResult( entityClass = Item.class, //就是当前这个类的名字 fields = { @FieldResult(name = "id", column = "id"), @FieldResult(name = "itemId", column = "item_id"), } ) }, columns = { @ColumnResult(name = "item_id") } ) @Entity @Table(name="item_permission") public class Item implements Serializable { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private String id; @Column(name="item_id") private Integer itemId; public Item(){} }查询
public ItemDAO{ ItemPermissionDAO dao = new ItemPermissionDAO(); Query query = dao.getEntityManager().createNativeQuery( "select * from item_permission", "ItemResults"); @SuppressWarnings("unchecked") List<Object[]> items = query.getResultList(); for (Object[] item : items) { System.out.println(item[1]); } }
它返回的格式是Object[]的数组形式
{ [, ] ,[, ] }
而且需要注意的是:
@EntityResult( entityClass = Item.class, //就是当前这个类的名字 fields = { @FieldResult(name = "id", column = "id"), @FieldResult(name = "itemId", column = "item_id"), } )其中注解FieldResult的配置必须是整个entity的所有属性的配置。在当前中属性有两个一个是id,另一个是itemId。所以FieldResult有两个。如果不写全的话,就会异常抛出。
相关文章推荐
- 使用JPA来执行本地SQL语句查询
- JPA的查询语言—使用原生SQL
- 使用 JPQL 和原生 SQL 查询 JPA 实体
- 【JPA】关于JPA使用原生多表查询,返回实体集合的方法 [@FiledResult]注解应用
- 关于Hibernate注解的使用(命名查询 本地查询)
- JPA使用本地查询实现联表查询,同一结果集中返回多个实体,多个字段
- JPA的查询语言—使用原生SQL
- hibernate使用本地sql语句查询,解决List<Object[]>转换成List<实体>
- 使用jpa的注解@Query 进行分页查询
- 使用自定义注解生成简单查询sql语句
- jdbc中想同时使用两个sql查询语句,必须创建两套statement和resultSet
- 通过JPA注解映射视图的实体类 jpa 视图 无主键 @Query注解的用法(Spring Data JPA) jpa 使用sql语句
- jpa或bernate使用原生sql进行关联查询org.hibernate.hql.internal.ast.QuerySyntaxException: Path expected for join
- Hibernate注解的使用(命名查询 本地查询)
- hibernate4使用本地sql查询和删除
- 基于Spring Boot,使用JPA动态调用Sql查询数据
- JPA的查询语言—使用原生SQL
- 不支持直接到存储查询(DbSet、DbQuery、DbSqlQuery、DbRawSqlQuery)的数据绑定。应使用数据填充 DbSet (例如通过对 DbSet 调用 Load),然后绑定到本地数据
- 使用 JPQL 和原生 SQL 查询 JPA 实体(转)
- JPA的查询语言—使用原生SQL