Hibernate - 它改变了数据库的结构吗?

时间:2013-04-07 21:50:48

标签: java hibernate

我正在使用Spring在java中构建更大的项目,很多人都建议我使用hibernate来轻松访问数据库。问题是,我必须使用此项目以前版本的数据库,以前用PHP编写,所以他们没有使用hibernate。我已经阅读了一些关于hibernate的内容,但我仍然不确定一件事 - 它是否必须改变数据库的结构,或者我可以使用标准MySQL数据库与int,varchar和其他类型中的存储值并使用hibernate在我的java代码中摆脱了很多SQL?

3 个答案:

答案 0 :(得分:2)

Hibernate是一个非常成熟的项目,绝对适用于现有的模式。您甚至可以使用Hibernate tools从现有架构生成类实体。

还有一点很重要,你需要小心:Hibernate支持复合主键和外键,但是你可以通过技术生成的ID轻松生活。

如果我有一个使用复合主键形成自然ID的模式,我会考虑在使用Hibernate之前用技术自动生成的ID替换它们。

答案 1 :(得分:1)

虽然Hibernate可用于创建/删除表,但通常您不会在生产环境中执行此操作。在这些场景中,您将定义POJOS与底层数据库架构之间的对象关系映射。所以,实际上,Hibernate并不需要向数据库模式添加任何内容。

如果您正在使用在应用hibernate之前定义的Schema,您可能需要确保字段转换器是合适的(即,Hibernate可能对SQL中的哪个列类型构成日期或数字有不同的想法),但这意味着您必须提供显式映射/转换器,而不是使用默认值。

但是,您应该能够在不对现有数据库模式进行任何重大更改的情况下使用Hibernate。

答案 2 :(得分:1)

Hibernate最适合连接目的。 您可以在不影响数据库当前结构的情况下使用它。 你也可以在hibernate中使用注释,它非常简单和容易。 记住一件事,你必须在hibernate中添加适当的映射 配置文件! 最好先备份整个数据库,然后才能使用 冬眠。