在开发中很多时候使用表值函数来节省开发业务。使用Hibernate映射时就会出现问题。
使用SpringMVC 用JPA映射表值函数由于对应关系会出现问题。解决方案如下
创建一个Model用于完成表映射,DAO使用NativeQuery来完成JPA的数据库查询
关键代码如下
@Entity
@SqlResultSetMapping(name = "CpkDataResults",entities = {@EntityResult(entityClass = com.byd.domain.CpkData.class,
fields = {
@FieldResult(name = "nccode", column = "nccode"),
@FieldResult(name = "qty", column = "qty"),
@FieldResult(name = "rate", column = "rate")
}
)} )
Query query = this.entityManager.createNativeQuery(sql,CpkDataResults);
return new LinkedHashSet<CpkData>(query.getResultList());