我有一个项目,它的域包含以下类:
Courier
Customer
Food
Order
Customer
PrimitiveElement
ResturantCustomerFacade
ResturantOrderFacade
我的数据库也有这些表:
Courier
Customer
CustomizedFood
CustomizedPrimitivePrice
FoodType
Order
PrimitiveType
ValueType
和hibernate为上表创建的类具有相同的名称。 我应该使用hibernate在我的域中创建的类,虽然由于hibernate类结构我不能应用我的类结构。 或者我必须使用自己的域类,而hibernate类只用于数据库操作?
答案 0 :(得分:1)
Hibernate本身不会制作任何类;我猜你在谈论Hibernate Tools,它可用于对数据库模式进行逆向工程并生成适当的类/映射。
如果你能提供帮助,强烈建议你反对拥有两套课程;它通常只带来问题。您应该使用Hibernate Tools生成的映射/类作为参考点编写自己的映射;在大多数情况下,您可以将域类映射到表中,只需要很少或不需要更改(例如,通过适当的映射可以轻松解决不同类/表或属性/列名称之类的内容;关联/继承非常灵活等等。 ..)这是Hibernate Annotations文档的链接。
在单独的主题上,ResturantCustomerFacade
和ResturantOrderFacade
等名称对于域对象来说相当奇怪。如果这些确实是您模型的一部分,请考虑将其重命名为RestaurantCustomer
和RestaurantOrder
。或者,如果它们确实是外观,则它们不属于域模型,不应该(不能)映射。
答案 1 :(得分:0)
Hibernate最终应该帮助您map 将对象关联到关系数据库。如果你真的遇到了不兼容类型或遗留代码的困难,你可以考虑将它们(和你的hibernate兼容的实现)隐藏在接口后面。