2015-03-31 4 views
0

В учебнике HQL, он приводит следующий пример:HQL внутреннее соединение - пожалуйста, объясните простыми словами

select s.name, p.name, p.price 
from Product p inner join p.supplier as s 

Продукт явно один из объектов, и это выглядит, как он соединяемых на это поставщик недвижимости, но к тому, к какой сущности он присоединяется, и к какому свойству этого объекта присоединяется.

Пожалуйста, объясните мне это.

Я понимаю, SQL, и, возможно, мне нужна смена парадигмы, поэтому, пожалуйста, смещаться меня :-)

ответ

1

Сейчас ваш запрос является неполным, поскольку Вы не указали объект, на котором вы собираетесь объединить эти две таблицы ,

Эти две таблицы могут быть объединены что-то вроде этого:

select s.name, p.name, p.price 
from Product p inner join p.supplier as s 
on p.id = s.id --This specifies the entity which you are using to join the table 

Так это означает, что ваш стол продукт и поставщик соединены в настоящее время Идентификатор столбца в таблице (идентификатор может быть заменен каким-либо другим именем в настоящее время в таблице)

ИЛИ

Если таблица имеет один ко многим отношений, определенные тогда и это возможно. Обратите внимание, что существует два типа JOINS, поддерживаемых HQL, т. Е., Implicit и Explicit.

EDIT: (добавление моего комментария здесь, так что я могу поставить галочку в ответ я искал)

Так что, мне кажется, что «под» есть уже присоединиться на месте и что свойство поставщика имеет все эта информация уже и что синтаксис соединения просто говорит, что вы хотите использовать это конкретное (уже настроенное) соединение. Таким образом, фактический объект, к которому он присоединен, и свойства, с которыми он соединяется, находятся в черном цвете. Все, что мне нужно знать, - это какие свойства находятся в неизвестной таблице (имя в примере).

+0

Возможно, поэтому учебник не имеет для меня никакого смысла - неполные примеры – Graham

+0

Так что это пример учебника неявного соединения? Если да, то что такое синтаксис соединения? – Graham

+0

@Graham: - Я не уверен, какой учебник вы используете. Но может быть, это может быть неявный JOIN, на который ссылается учебник. Вы можете обратиться к этому руководству: - http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-joins-forms –

Смежные вопросы