16.1.4.1. 别名和属性引用(Alias and property references)

大多数情况下,都需要上面的属性注射,但在使用更加复杂的映射,比如复合属性、通过标识符构造继承树,以及集合类等等情况下,也有一些特别的别名,来允许Hibernate注射合适的别名。

下表列出了使用别名注射参数的不同可能性。注意:下面结果中的别名只是示例,实用时每个别名需要唯一并且不同的名字。

表 16.1. 别名注射(alias injection names)

描述语法示例
简单属性{[aliasname].[propertyname]A_NAME as {item.name}
复合属性{[aliasname].[componentname].[propertyname]}CURRENCY as {item.amount.currency}, VALUE as {item.amount.value}
实体辨别器(Discriminator of an entity){[aliasname].class}DISC as {item.class}
实体的所有属性{[aliasname].}{item.}
集合键(collection key){[aliasname].key}ORGID as {coll.key}
集合id{[aliasname].id}EMPID as {coll.id}
集合元素{[aliasname].element}XID as {coll.element}
集合元素的属性{[aliasname].element.[propertyname]}NAME as {coll.element.name}
集合元素的所有属性{[aliasname].element.}{coll.element.}
集合的所有属性{[aliasname].}{coll.}