Java 从hibernate sql联接获取多个实体
我有4张桌子: OrdersorderID、orderDate、orderItem OneToMany OrderItemid、OrderManyTone、book ManyTone、quantity 书号、书名、成本 用户ID、用户名、密码 以下是我在SQL中的查询: user_id是Orders表中用户的外键 orders\u id是OrderItem表中订单的外键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
您需要执行实体查询。假设您已经正确映射了实体,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;