今天观看了斯皮尔伯格导演的《头号玩家》 内心很是震撼,科技感爆棚,所以坚信自己,用程序改变世界。
今天总结的是Hibernate的多对一的重点 和一些零散的重要的知识点,话不多说,直接进入正题
首先是实体类的状态:
临时态:OID为null 并且seession 无关联 ,一般new出来的都是临时态
持久态:OID不为null 并且seession 有关联,一般save,update,get,Query得到的都是持久态
游离态:OID不为null ,与session无关联,一般的close
删除态:预计删除,一般为delete
附一张传智播客的图片以便理解
Session的有关的方法:
save(): 表示使一个临时态的对象转换成持久态的对象
persist(): 表示使一个临时态的对象转换成持久态的对象,但是没有事务的支持
update():使游离态转换成为持久态,如果在update过程中已经有一个相同oid的持久态对象,那么会报错,解决方法就是在 实体类.hbm.xml的id中配置 unsave-value='那个id'
saveOrUpdate():如果是临时态那么就执行save方法 如果是游离态那么就执行update方法
merge():表示把游离态的对象的属性复制到持久化对象中
多对一映射(双向): 这里介绍的是双向的关系:
首先创建实体类:Student ,Teacher 这里省略get、set 方法
然后建立对应的hbm.xml 文件
配置Hibernate.cfg.xml
自我多对一(双向):