组成关系映射(注解)
@Embeddable:表明该JavaBean是组件类。
@Embedded:用于组件属性,以标明实体Bean的组件属性。
@AttributeOverrides:该注释作用于组件属性,用来指定组件类型封装了哪些属性,相当于xml映射文件中的<component>标签。
@AttributeOverride:该注释作用于组件属性,用来配置组件类中的属性,相当于XML映射文件中的<componenet>标签的<property>子标签。
@Column:该注释用来映射实体Bean中普通属性,在这里用于配置组件类中的属性。
组件类:
@Embeddable
public class Name{
........
}
实体Bean类,
@Entity
@Table(name=”t_person”)
public class person{
@Embedded
@AttributeOverrides({
@AttributeOverride(name=”first” ,column=@Column(name=”first”)),
@AttributeOverride(name=”last”,column=@Column(name=”last”))
})
public Name getName(){
return name;
}
}
提示:如果组件类(Name)的属性和字段一致,可以不适用@AttributeOverrides注释,甚至也可以不适用@Embedded注释,这是因为Hibernate框架根据@Embeddable注释就已经可以猜出name是一个组件属性了。