我是Hibernate的新手,在设计从数据库到Hibernate代码生成的关系时遇到了几个问题。我更喜欢使用外键约束来设计一对一,一对多,多对多关系,因为它更直观,更清晰。但是当使用DB-Browser生成代码时,我发现关系搞砸了,我必须对xml进行大量的手动重写才能获得所需的关系。如果表更改,则可能难以维护数据库和Hibernate之间的一致性。
您能否给我一些建议,以弥合数据库设计与OOP之间的差距?也许有不同的方法,例如,我知道的一些人不会在数据库中设计与约束的关系,而是依赖Hibernate中的xml来定义关系。 换句话说,Hiberate中的关系(部分)与数据库无关?
非常感谢。
答案 0 :(得分:0)
使用ORM时,您有3个关于域模型的“真相来源”:
您需要做的是决定您将管理的3(3)个中的哪两个(两个),并自动生成第三个。
我选择创建自己的类和映射,让hbm2ddl
为我生成数据库。无论我想创建数据库,我都要确保在映射上正确描述它(例如键,索引,列长度和约束)。如果我需要在我的数据库中做一些“自定义”,我确保用各种hibernate构造来描述它,例如:
最终结果是新开发人员可以签出代码,运行hbm2ddl“export”并开始处理项目,确保他/她的数据库架构与我的100%相同。
答案 1 :(得分:0)
如果xml中的hibernate映射让你生病,请检查:https://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/
在我看来,注释更加干净,可以轻松重构。