我是hibernate
的新用户我在hibernate
上经历了一些(1,2)教程,甚至在我的项目中实施,我得出以下结论 - < / p>
mapped by
表示对象的另一方是所有者
这只是针对数据库的观点,实际上我是如何在数据库中创建关系的,一般mapped by
用于避免不必要的表。
从java的角度来看,这对您的代码没有任何影响,即使我们删除mapped by
,与mapped by
一起运行的相同代码也会完全相同。
我的上述理解是否正确,如果没有,请您解释一下这种情况有何不同?
答案 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感到遗憾,它表明谁是关系的所有者,谁负责管理关系。