当前位置: 首页 > 面试题库 >

将Hibernate用于现有数据库

杜楚
2023-03-14
问题内容

我们有一个已经运行很长时间的应用程序。现在我们将其迁移到Spring并可能使用Hibernate或任何其他ORM。

但是我们遇到了一个问题。不建议/不好的主意,对于已经存在的数据库使用Hibernate并围绕Schema对对象进行建模吗?

大多数人主张不要使用Hibernate,而应该使用iBatis等其他ORM。但是在我们公司中,所有人都是Hibernate的支持者。

有经验吗?


问题答案:

我会说在不了解您的要求的情况下选择Hibernate,iBatis或其他任何东西都是不负责任的。

如果您没有实体对象模型,那么我会说Hibernate是一个糟糕的选择。

如果您使用存储过程作为数据库的接口,那么Hibernate就是一个糟糕的选择。

如果您不喜欢Hibernate为您生成的动态SQL,那么我想说Hibernate是一个糟糕的选择。

得到它?像那些Hibernate支持者那样的下意识反应不是一个好主意。

与Hibernate相比,iBatis或Spring
JDBC模板可能是更好的选择。您应该对该决定有更多的了解,并使其适合您的应用程序,而不是盲目地听暴民的声音。

您也不必一无所有。可以使用一种技术来实现您的解决方案的一部分,而使用另一种技术来实现其余的解决方案。

我建议使您的持久层基于接口,以便您可以交换实现而不会影响客户端。



 类似资料:
  • 问题内容: 我有一个用PHP / MySQL(具体来说是symfony)编写的应用程序,(可能)想在Rails中重写。我知道如何为尚不存在的表创建脚手架,但是如何让Rails读取现有的表结构并基于此创建脚手架? 更新:事实证明,我可以运行以下命令来获取Rails为我生成模型: 但这并没有给我表格。我希望能给我表格的东西。 问题答案: 答案是。 http://guides.rubyonrails.o

  • 问题内容: 部署应用程序时,我经常使用Hibernate的功能来创建数据库架构,以简化部署。通过配置hibernate.hbm2ddl.auto属性可以轻松实现。 但是,有时我还需要向数据库中插入一些初始数据,例如root用户。有什么办法可以通过hibernate并加载某种文本文件来实现? 我知道我可以很容易地对将要执行此操作的代码进行编程,但是只是想知道是否已经有一些实用程序可以帮助我通过配置实

  • 我在生产中有一个基于Hibernate的应用程序,有一个大型数据库。我需要在这个应用程序中向两个实体(两个表)添加审计,我决定使用Envers。 对于每次插入、更新或删除,Envers都会向实体的审核表中添加一条新记录。 如果从应用程序一开始就支持Envers,那么审计表将在实体创建(INSERT)时填充。 Envers留档非常薄,没有提到任何关于将Envers添加到现有应用程序的内容。 如果我简

  • 问题内容: 我正在使用Microsoft Sql Server Management Studio。我目前有一个包含数据的现有数据库,我将其称为DatabaseProd。我还有一个第二个数据库,其中包含用于测试的数据,因此数据既不完全正确也不是最新的。我将这个数据库称为DatabaseDev。 但是,DatabaseDev现在包含新添加的表和新添加的列等。 我想将此新模式从DatabaseDev复

  • 我有一个UTF8 mysql数据库,我必须导入一个latin1表。我希望导入后可以修复数据错误。是一张巨大的桌子,里面有我国所有的地址。因此数据显示如下: 我遵循一个提示说,我应该将所有TEXT字段转换为BLOB,它们将表转换为UTF8,最后将BLOB字段更改回TEXT。 以下是参考资料:https://www.percona.com/blog/2013/10/16/utf8-data-on-la

  • 问题内容: 我正在循环列表并将其插入数据库中,但它得到的更新记录一个接一个。最后我只在列表中的数据库最后一条记录中看到。 输入名称:Linux,Windows,Mac hibernate.cfg.xml: 这里有3次获得循环并插入数据库。但是以某种方式覆盖了这些值。因为我看到sql插入和更新在控制台中运行。 请帮助我将多个行插入数据库。 问题答案: Hibernate文档中有一章非常好的关于批处理