千家信息网

Hibernate动态模型是什么

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍"Hibernate动态模型是什么",在日常操作中,相信很多人在Hibernate动态模型是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Hiber
千家信息网最后更新 2026年11月04日Hibernate动态模型是什么

这篇文章主要介绍"Hibernate动态模型是什么",在日常操作中,相信很多人在Hibernate动态模型是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Hibernate动态模型是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Hibernate动态模型(Dynamic models)

注意:以下特性在当前处于试验阶段,将来可能会有变化。

运行期的持久化实体没有必要一定表示为像POJO类或JavaBean对象那样的形式。Hibernate也支持动态模型(在运行期使用Map的Map)和象DOM4J的树模型那样的实体表示。使用这种方法,你不用写持久化类,只写映射文件就行了。

Hibernate默认工作在普通POJO模式。你可以使用配置选项default_entity_mode, 对特定的SessionFactory,设置一个默认的实体表示模式。 (参见表 3.3 " Hibernate配置属性 "。)

下面是用Map来表示的例子。首先,在映射文件中,要声明 entity-name来代替一个类名(或作为一种附属)。

                                                                                                                              

注意:虽然是用目标类名来声明关联的,但是关联的目标类型除了是POJO之外,也可以 是一个动态的实体。

在使用dynamic-map为SessionFactory 设置了默认的实体模式之后,可以在运行期使用Map的 Map。

Session s = openSession();  Transaction tx = s.beginTransaction();  Session s = openSession();   // Create a customer  Map david = new HashMap();  david.put("name", "David");   // Create an organization  Map foobar = new HashMap();  foobar.put("name", "Foobar Inc.");   // Link both  david.put("organization", foobar);   // Save both  s.save("Customer", david);  s.save("Organization", foobar);   tx.commit();  s.close();

动态映射的好处是,变化所需要的时间少了,因为原型不需要实现实体类。然而,你无法进行 编译期的类型检查,并可能由此会处理很多的运行期异常。幸亏有了Hibernate映射,它使得数 据库的schema能容易的规格化和合理化,并允许稍后在此之上添加合适的领域模型实现。

实体表示模式也能在每个Session的基础上设置:

Session dynamicSession = pojoSession.getSession(EntityMode.MAP);   // Create a customer  Map david = new HashMap();  david.put("name", "David");  dynamicSession.save("Customer", david);  ...  dynamicSession.flush();  dynamicSession.close()  ...  // Continue on pojoSession

请注意:用EntityMode调用getSession()是在 Session的API中,而不是SessionFactory。 这样,新的Session共享底层的JDBC连接,事务,和其他的上下文信 息。这意味着,你不需要在第二个Session中调用 flush()和close(),同样的,把事务和连接的处理 交给原来的工作单元。

到此,关于"Hibernate动态模型是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

动态 模型 实体 模式 行期 学习 事务 文件 方法 更多 目标 类名 类型 关联 变化 处理 工作 帮助 配置 合适 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会副主任毛军 互联网品科技 港股互联网科技股 广州互联网科技公司 互联网 科技创业 成都互联网科技公司 天下捷融互联网科技 湖北码尼互联网科技有限公司电话 杭州壁岐互联网科技有限公司 互联网科技大奖都有哪些公司 西安小鹰速贷互联网科技有限公司 互联网数据科技专业 为客找房互联网科技公司怎么样 云南省自由互联网科技有限公司 浙南科技城互联网大厦招聘 广州有谷有贝互联网科技有限公司 福州德业互联网科技 银川新华互联网科技学校是国营吗 杭州科技互联网公司有哪些 互联网企业和网络科技有限公司 猪兼强互联网科技 甘肃拓世互联网科技有限公司 北京华百购互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 阿大互联网科技有限公司 世界互联网领先科技成果获奖 半导体是互联网高科技吗 神州科技互联网有限公司 昆明中奇联合互联网科技 承德科技产业互联网平台
0