我是hibernate的新手,并试图学习一些基本概念。我已经搜索了很多关于为什么我们需要一对一的映射但我无法得到一个很好的答案来帮助初学者。 请解释为什么我们需要在休眠中进行映射(一对一和多对一)
答案 0 :(得分:1)
您熟悉关系数据库的常用理论吗?
要回答您的问题,如果您知道实体关系图是什么以及它们显示什么,那将是一个良好的开端。基本点是,您希望以图形方式显示数据库中的元素及其关系。
假设您的数据库将包含一个包含汽车的表和一个包含人的表。 它们是完全独立的,您可以存储您想要的关于汽车和人的任何信息。 但是,当你说每辆车都可以由一个人拥有时,你想要存储汽车属于哪个人的信息。信息 car x由人y拥有就是你所谓的汽车与人之间的关系。
现在,一对一和一对多的区别在于你是说每个人可以拥有零辆或一辆车(一个人对一辆车)或多辆车( >一人到多辆车)。
说到hibernate,你很可能想把这个理论应用到脚本中的对象。假设您有一个汽车对象,该对象包含一个“所有者”变量(这是您的人员类的对象)。 然后你告诉hibernate分别存储汽车和所有者,因为你可能还需要在脚本的其他位置使用people对象。 然后,映射将告诉hibernate汽车和所有者对象是否链接在一起,即使它们存储在数据库的不同表中。
我希望这能让你更清楚地了解你想用hibernate做什么以及映射如何适应它。