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.*} |