Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从hibernate sql联接获取多个实体_Java_Sql_Hibernate_Join_Orm - Fatal编程技术网

Java 从hibernate sql联接获取多个实体

Java 从hibernate sql联接获取多个实体,java,sql,hibernate,join,orm,Java,Sql,Hibernate,Join,Orm,我有4张桌子: OrdersorderID、orderDate、orderItem OneToMany OrderItemid、OrderManyTone、book ManyTone、quantity 书号、书名、成本 用户ID、用户名、密码 以下是我在SQL中的查询: user_id是Orders表中用户的外键 orders\u id是OrderItem表中订单的外键 您需要执行实体查询。假设您已经正确映射了实体,HQL查询就是这样的: SELECT o FROM orderitem oi J

我有4张桌子:

OrdersorderID、orderDate、orderItem OneToMany

OrderItemid、OrderManyTone、book ManyTone、quantity

书号、书名、成本

用户ID、用户名、密码

以下是我在SQL中的查询:

user_id是Orders表中用户的外键

orders\u id是OrderItem表中订单的外键


您需要执行实体查询。假设您已经正确映射了实体,HQL查询就是这样的:

SELECT o
FROM orderitem oi
JOIN FETCH oi.book
JOIN FETCH oi.orders 
JOIN FETCH oi.user u 
WHERE u.id = 1;

您必须使用hibernate条件,但我看不到orderitem quantity属性。@AfsunKhammadli quantity与quantity相同,我更正了它。您的表中没有按quantity命名的列您不理解我的意思。您的orderitem表中没有按quantity命名的列。但在select语句中,您编写了orderitem。quantity@AfsunKhammadli很抱歉我改正了,我忘了。
List<OrderItem> orderBookInfo = (List<OrderItem>) session.createSQLQuery(sql); // returns List<Object[]> why?!
orderBookInfo.order.id = (first location of orderBookInfo)

orderBookInfo.book.title = (second location of orderBookInfo)
SELECT o
FROM orderitem oi
JOIN FETCH oi.book
JOIN FETCH oi.orders 
JOIN FETCH oi.user u 
WHERE u.id = 1;