实体类还需要配置到hibernate.cfg.xml中,以便Hibernate初始化实体类与数据库表的映射关系。如果只配置了映射关系,而没有配置到hibernate.cfg.xml中,Hibernate仍然不会知道哪些类是实体类,因为Hibernate无法通过遍历所有的类来决定哪些是实体类。
a.如果实体类是使用@注解配置的,需要用<mapping class=""/>配置,这样他们的对应关系在实体类上面已经使用了相应的注解,如:
@Entity
@Table(name = "product_attribute")
public class ProductAttribute {
@Id
@GeneratedValue( strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "productId")
private ProductInfoEntity productInfo;
@ManyToOne(cascade = CascadeType.MERGE)
@JoinColumn(name = "pro_attr_metaId")
private ProductAttributeMetaEntity productAttributeMeta;
@Column(name = "value")
private String value;
b.而如果是用XML文件配置的,则需要用<mapping resource=""/>配置XML配置文件。如:同时每一个对象模型(实体)都应有自己的配置文件,命名为:实体名.hbm.xml,最后将 实体名.hbm.xml引入到hibernate.cfg.xml配置文件中
c.代码hibernate.cfg.xml
- # 在Hibernate中声明用@注解配置的实体类
- <mapping class="com.helloweenvsfei.hibernate.bean.Department" />
- <mapping class="com.helloweenvsfei.hibernate.bean.Employee" />
- # 在Hibernate中声明用XML配置的实体类
- <mapping resource="com/helloweenvsfei/hibernate/bean/Event.hbm.xml" />
- <mapping resource="com/helloweenvsfei/hibernate/bean/Cat.hbm.xml" />