JPA 2.1规范定义了将结果从本机查询返回到非实体类的方法
您应该检出标题 3.10.16.2返回非托管实例, 尤其是
3.10.16.2.2构造函数结果
使用 SqlResultSetMapping 批注的 ConstructorResult 批注元素指定到构造函数的映射。
ConstructorResult 批注的 targetClass 元素指定其构造函数对应于指定列的类。必须使用
ConstructorResult 批注中的columns元素以与 构造函数
的参数列表相同的顺序指定与预期构造函数的参数对应的所有列。作为构造函数结果返回的任何实体都将处于新状态或分离状态,具体取决于是否为构造对象检索了主键。
例
Query q = em.createNativeQuery( "SELECt c.id, c.name, COUNT(o) as orderCount, AVG(o.price) AS avgOrder" + "FROM Customer c, Orders o " + "WHERe o.cid = c.id " + "GROUP BY c.id, c.name", "CustomerDetailsResult");@SqlResultSetMapping(name = "CustomerDetailsResult", classes = { @ConstructorResult(targetClass = com.acme.CustomerDetails.class, columns = { @ColumnResult(name = "id"), @ColumnResult(name = "name"), @ColumnResult(name = "orderCount"), @ColumnResult(name = "avgOrder", type = Double.class)}) })
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)