映射者:Hibernate

时间:2017-02-19 22:06:47

标签: java spring hibernate

我是hibernate的新用户我在hibernate上经历了一些(12)教程,甚至在我的项目中实施,我得出以下结论 - < / p>

  

mapped by表示对象的另一方是所有者

这只是针对数据库的观点,实际上我是如何在数据库中创建关系的,一般mapped by用于避免不必要的表。

从java的角度来看,这对您的代码没有任何影响,即使我们删除mapped by,与mapped by一起运行的相同代码也会完全相同。

我的上述理解是否正确,如果没有,请您解释一下这种情况有何不同?

2 个答案:

答案 0 :(得分:5)

不,不是。 <html> <head> <link rel="stylesheet" href="/static/css/style.css"> <script type="text/javascript" src="/static/js/jquery.js"></script> <script type="text/javascript" src="/static/js/index.js"></script> <title>Welcome</title> <h1 class="header">Welcome to the test site</h1> <a href = "http://www.google.com">Google.com</a> </head> <body> <input type="button" onclick="location.href='/login';" value="Login" /> </body> </html> 实际上与数据库无关。当关联是双向的时,它告诉关联的哪一方是拥有方。假设您在公司(反面)和员工(所有者方)之间存在关联。建立谷歌和约翰之间的关联时,

mappedBy

不会让Hibernate在数据库中保存关联,因为你只设置了关联的反面。

google.addEmployee(john);

将使Hibernate在数据库中保存关联,因为您设置了关联的所有者端。

每个双向关联必须有所有者方和反方。

在OneToMany双向关联中,所有者方必须是多方。

答案 1 :(得分:0)

这很容易理解,mappedBy显示FK居住的地方,而JB Nizet感到遗憾,它表明谁是关系的所有者,谁负责管理关系。