博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于hibernate的das实现研究(1)
阅读量:4192 次
发布时间:2019-05-26

本文共 953 字,大约阅读时间需要 3 分钟。

按公司的计划基于hibernate实现了das,这里写的系列blog 当然是不能写DAS实现过程的,那是公司机密。

本系列blog主要是对hibernate的实现原理做一个分析,这个对以后工作中的回忆和新功能实现是非常有用的。

本文主要分析hibernate的sessionFactory的build过程。

1)new Configure().buildSessionFactory();

Configuration.java 要做的事情就是 读出 mapping配置(.hbm.xml) 和 setting配置(.cfg.xml)

2) SessionFactoryImpl.java

要做的事情就是 设置identifierGeneration/ Named Query/ cache strategy。然后最主要的,就是

构造一个  EntityPersister。

3)org.hibernate.persister.entity.AbstractEntityPersister(请f4查看这个类的type hierarchy!)

GavinKing对这个类写的说明是: Basic functionality for persisting an entity via JDBC

  through either generated or custom SQL。 在Class方面,它实现了ClassMetaData接口,在对象方面,

它有一个EntityMetaModel属性。 类元数据/实体元模型 ,两大meta都在这个类中,可以明白这个基本是

Hibernate 最重要的一个文件。它的425行有这样一段:

this.entityMetamodel = new EntityMetamodel( persistentClass, factory );

4)EntityMetaModel.java的基本所有的 元模型都是用persistentclass来获得的。另外它还持有一个属性:

  tuplizerMapping。tuplizerMapping是一个map,包括了从 EntityMode到tuplizer的 mapping。

tuplizerMapping是实现DAS功能的最主要的扩展点。

转载地址:http://zhaoi.baihongyu.com/

你可能感兴趣的文章
美团最好战的那个男人要走了
查看>>
企业数据云公司Cloudera发布CDP私有云,完善整套企业数据云愿景
查看>>
心心念特斯拉Cybertruck?现在可以下单了,订金1000块
查看>>
高通总裁安蒙在“GSMA Thrive”中分享了哪些关键信息?
查看>>
为什么说人类的屁股是个四次元空间?
查看>>
索尼印度研究院启动运营 将在应用AI和数据分析领域提供就业机会
查看>>
紫光国微:目前业务以芯片设计为主 制造占比较低
查看>>
外媒:柔宇科技搁置赴美上市计划 考虑在中国进行IPO
查看>>
中芯国际A股最终确定发行价27.46元 发行规模超50亿
查看>>
小米金融:与涉案的“山东小米金融服务外包有限公司”无关系
查看>>
苹果今年预计生产8000万部iPhone 12,多还是少?
查看>>
我给互联网大佬们换上了女装
查看>>
中芯国际科创板上市发行价定为27.46元/股,募资或超500亿元
查看>>
创业失败三年后,这个曾经的富二代变得一无所有
查看>>
马云下死命令留人?阿里辟谣:不会高薪聘请黑掉阿里网站的人
查看>>
三星电子第二季芯片需求大增 但手机销售疲软
查看>>
今天,A股犹如过年!股市太火,炒股app都绷不住了
查看>>
教育部认可公众号博主是自由职业,网友:公号被封算失业吗?
查看>>
2020全国高考作文题出炉!网友:信心满满的点开,一脸懵逼的退出
查看>>
特斯拉要开杂货铺? 除了卖车还要卖短裤和酒水
查看>>