java - 我应该采用哪种类型的列表来从另​​一个表中加入(内部)2 个表

标签 java sql hibernate jakarta-ee

我有 3 个表用户、产品和订单

USER:
-----+-----------+------------+---------+----------+-----------+
 u_id | username  | password   | contact | email   | city      |
------+-----------+------------+---------+---------+-----------+

PRODUCT:
+------+----------+--------------+------+--------------+
| p_id | category | listed_price | qty  | description  |
+------+----------+--------------+------+--------------+

ORDERS:
+------+--------+------+------+-----------+
| o_id | date   | u_id | p_Id | order_qty |
+------+--------+------+------+-----------+

我想按以下顺序将 User 表与 Product 以及 o_id(来自 ORDER)进行内部连接:

+-----------+-------+------+------+--------------+
| username  | email | p_id | o_id | listed_price |
+-----------+-------+------+------+--------------+

我的 SQL 查询如下:

productList = (List<Object[]>) session.createSQLQuery(
    "SELECT User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price " +
    "FROM Orders " +
    "INNER JOIN User " +
    "ON User.u_id = Orders.u_id" +
    "INNER JOIN Product " +
    "ON Product.p_id = Orders.p_id " +
    "WHERE Product.p_id = '"+p_id +"' " +
    "ORDER BY User.username").list();

最佳答案

它将返回 List<Object[]> . (对象数组列表),其中每个数组代表结果中的一行。值索引基于您的选择语句。

在这里您可以选择以下内容:

User.username, User.email, Orders.p_id, Orders.o_id, Product.listed_price

因此您将在每个对象数组中获得 5 个元素。其中第一个元素是用户名,第二个元素是电子邮件,依此类推...

关于java - 我应该采用哪种类型的列表来从另​​一个表中加入(内部)2 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15083648/

相关文章:

java - Java Web应用程序框架

java - 在 Android 中读取未提交的事务

java - 您在 `removeAnnotationIcon` 被销毁后调用 `MapView` ,您是在 `onDestroy()` 之后调用它吗? map 框

sql - 使用 postgres tablefunc crosstab() 计算错误答案

java - Hibernate org.hibernate.MappingException ...关联..未映射的类- Manytomany

java - 手动设置标题进行测试

MySQL - 根据列子集重复删除行

sql - 如何创建仅获取表中已更新数据的查询

Hibernate 批量插入/更新约束违反异常

java hibernate Eclipse xml