使用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%
帮助的人:133万
展开全部
反向工程会自动把表之间的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-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
昕赋苦开远0N
2013-05-08 · 超过39用户采纳过TA的回答
知道答主
回答量:205
采纳率:0%
帮助的人:81.4万
展开全部
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

提交
取消

辅 助

模 式