使用Hibernate反向工程通过数据库表自动生成实体类和映射文件的时候,表之间的关联关系的方向怎么确定?

举例来说,我有两个表,一个students,一个class。多个学生可以在一个班级中,比如通过classID进行两个表之间的关联。假设这个constriant我在生成数据... 举例来说,我有两个表,一个students,一个class。多个学生可以在一个班级中,比如通过classID进行两个表之间的关联。假设这个constriant我在生成数据库的时候已经通过sql设置好了。那么,如果我使用Hibernate反向工程通过数据库表自动生成实体类和映射文件,关联关系是怎样的呢?hibernate是如何确定的呢?

1-是students对class的单向many-to-one?
2-是class对students的单向one-to-many?
3-双向的?

谢谢回答我的大侠。解决疑难善莫大焉,一点分数不成敬意。
展开
 我来答
南美派大星
2013-05-08 · TA获得超过407个赞
知道小有建树答主
回答量:219
采纳率:0%
帮助的人:131万
展开全部
反向工程会自动把表之间的constriant映射配置到对应的 映射文件中。如
楼主表述一个class中可以存在多个students。关系的控制反转是由class来控制的。所以在class.hbm.xml 里边<set><key></key><one-to-many></one-to-many></set>.
更多追问追答
追问
你好~从你的回答看,你是认为最后生成的映射关系是class对student的one-to-many关系了。可是你是怎么确定的呢?你为什么说“楼主表述一个class中可以存在多个students。关系的控制反转是由class来控制的”?hibernate怎么知道我不是想要从student到class的many-to-one呢?
追答
在关联关系当中 我们一般都是交由 多的一方来控制这种关联关系。
在你所描述的这个里边 多的一方是不是 students?所以针对students来说 控制翻转的权限在于students 也就是inverse=“true”,
在的节点时候 才能配置 inverse这个属性!
如果像你理解的第二种配置 那么这种关联关系就不在由 多的一方(studets)来控制了。
hibernate会较优自动实现。而不是采取第二种方式 如果硬要用第二种也可行 只是hibernate就是这么个机制。希望我的回答对你有所帮助。
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
昕赋苦开远0N
2013-05-08 · 超过39用户采纳过TA的回答
知道答主
回答量:205
采纳率:0%
帮助的人:80.1万
展开全部
Hibernat关联关系有单双向一对多,多对一,还有多对多。
一对多:即在一的一方配置多的集合。多对一:就是在多的一方配置一的对象。
然后就是配置class.hbm.xml文件了。
这是在多的一方配置:
<many-to-one name="admingroup" class="com.entity.AdminGroup" lazy="false">
<column name="adgid"></column>
</many-to-one>
在一的一方:
<set name="admins" table="admin" inverse="true" fetch="select">
<key>
<column name="adgid"></column>
</key>
<one-to-many class="com.entity.Admin"/>
</set>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式