·在实体类上注解@Entity(javax.persistence.Entity)
·在主键的getXXX()方法上注解@Id
·在hibernate.cfg.xml文件中配置:
<mapping class="实体类的全名" />
若使用Annotation的方式配置关系,则只需使用
new Configuration().configure().buildSessionFactory();
而不需要再使用addClass()方法(因为该方法是用于在使用XML的方式时引入*.hbm.xml文件的,代替了hibernate.cfg.xml中的)
【注意】:这是在Hibernate5下的写法,不同版本的Hibernate可能会不同。之前的一些版本会需要把Configuration()改为AnnotationConfiguration()
mappedBy:
·只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性。
·mappedBy标签一定是定义在被拥有方的,他指向拥有方。
·mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系
@ManyToMany:
·拥有方若指定为cascade = CascadeType.ALL,则:
·在插入时,会自动插入与拥有方存在关系的数据;
·在读取时,若未用到被拥有方,则不会取出,否则会自动取出被拥有方;
·在更新时,若修改拥有方,则会自动删除原拥有方与被拥有方之间的关系,但不会重新生成关系;
·在更新时,若修改被拥有方,则只修改被拥有方的属性,不会修改关系;
·在删除时,若删除拥有方,则会自动删除拥有方与被拥有方之间的关系,但不会删除被拥有方
·在删除时,若删除被拥有方,则会报错,因为存在着外键的引用