日期:2014-05-16  浏览次数:20443 次

JPA注解详解(三)

?

@ColumnResult

执行 @NamedNativeQuery 时,它可以返回实体(包括不同类型的实体)、标量值或实体和标量值的组合。

使用 @ColumnResult 批注返回标量值。标量类型由您在 @ColumnResult 中标识的列类型确定。

有关详细信息,另请参阅 @EntityResult @FieldResult @SqlResultSetMapping

表 1-8 列出了此批注的属性。有关更多详细信息,请参阅 API

1-8 @ColumnResult 属性

属性

必需

说明

name

必需

?

在原生 SQL 查询的 SELECT 语句中将 name 设置为列名的 String 等效形式。如果在 SELECT 中使用列别名( AS 语句),则将 name 设置为列别名。

?

示例 1-9 显示了如何使用此批注将 Item (请参阅示例 1-10 )标量 name 包含在结果列表(请参阅示例 1-11 )中。在该示例中,结果列表将为 Object 数组的 List ,如: {[Order, "Shoes"], [Order, "Socks"], ...}

示例 1-9 使用 @ColumnResult Order 实体

@SqlResultSetMapping(
name="OrderResults",
entities={
@EntityResult(
entityClass=Order.class,
fields={
@FieldResult(name="id",?????? column="order_id"),
@FieldResult(name="quantity", column="order_quantity"),
@FieldResult(name="item",???? column="order_item")
??????????? }
??????? )
??? },
columns={
@ColumnResult(
name="item_name"
???