组成关系映射(注解)


 @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是一个组件属性了。