子选择、连接和 O/R 映射
我正在关注 struts 2 和 hibernate 5。 我有两个表 A 和 B,具有不同的主键 A_ID 和 B_ID。 它们有共同的列,如型号、名称。
在我的 hbm 文件中,我没有引用上述任何表,而是有一个连接两个表的子选择查询。
hbm 文件中的映射是
<id name="a_id" column="A_ID" />
<property name="b_model" column="B_model"/>
当我运行休眠查询时生成的。我在 MySql 中得到以下输出
A_Id B_model other columns
111 3131
222 2121
222 4141
333 5151
但是执行查询时返回的列表是
list(0) = 111 and 3131
list(1) = 222 and 2121
list(2) = 222 and **2121**
list(3) = 333 and 5151.
我的问题是为什么 list(2) 没有 4141 而不是 2121。
请让我知道我应该做什么才能获得我需要的相同(即)列表(2)中的4141。
提前致谢。
i am following struts 2 and hibernate 5.
I have two tables A and B with different primary keys A_ID and B_ID.
They have common columns like model, name.
In my hbm file, I didnt refer to any of the above tables instead I have a subselect query which joins the two tables.
The mappings in the hbm file is
<id name="a_id" column="A_ID" />
<property name="b_model" column="B_model"/>
When i ran the hibernate query generated. I got the following output in MySql
A_Id B_model other columns
111 3131
222 2121
222 4141
333 5151
But the list returned when the query is executed is
list(0) = 111 and 3131
list(1) = 222 and 2121
list(2) = 222 and **2121**
list(3) = 333 and 5151.
My question is why didnt list(2) didnt have 4141 instead of 2121.
And please let me know what i should to get the same (i.e) i need 4141 in list(2).
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
正如我猜测的那样,元组作为对象返回。因此,对于 A-Id 222,B_mod 设置为 2121。我使用 row_num() 函数获取每行的不同行号,并将其用作主键列来获取所有行。这可能不是一个精确的解决方案,但仍然有效:-)
As i guessed the tuples are returned as objects. Hence for A-Id 222 the B_mod is set as 2121. I used row_num() function to get distinct row nums for each row and used it as a primary key column to get all the rows. This may not be an exact solution but still it worked :-)