gpt4 book ai didi

java - Hibernate逆向工程

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:57:56 24 4
gpt4 key购买 nike

我有一个结构,其中主表是 USER,其他表包括 CATEGORY(包含 user_id)。

经过标准逆向工程程序后我得到的是:

  • User 类包含类别的集合,
  • Category 类不包含外键 (user_id),但包含 User 对象。

为什么它不包含外键作为类属性?

如何在没有胶水的情况下在 HQL 中连接这两个表?HQL - 请解释这部分。

最佳答案

Why did it not contain the foreign key as a class property?

因为 Hibernate 是一个对象-关系映射工具,Hibernate 允许使用对象模型(即对象和对象之间的关系)并将它们映射到数据库表示(表的数据行)。 Hibernate 的全部意义在于弥合面向对象范式和关系范式之间的差距(著名的 Object-Relational Impedance Mismatch )。在您的情况下,以下对象模型是预期的(正确的)对象表示:

alt text http://img251.imageshack.us/img251/6335/110b578b.png

And how do I join these two tables in HQL without that glue?

胶水 就在那里,但你必须考虑对象(和关联)。例如(参见 14.3. Associations and joins):

from Category as category join category.user as user

请注意,HQL 支持两种形式的关联加入:隐式显式(参见14.4. Forms of join syntax)。上面的示例使用了一个显式 连接。 隐式 形式不使用 join 关键字,而是使用点符号:

from Category category where category.user.id =: id

关于java - Hibernate逆向工程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2416775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com