HQL-запрос столбцов в наборе - PullRequest
2 голосов
/ 16 сентября 2008

Можно ли достичь отдельных столбцов таблицы 2 с помощью HQL с такой конфигурацией?

<hibernate-mapping>
  <class table="table1">
    <set name="table2" table="table2" lazy="true" cascade="all">
      <key column="result_id"/>
      <many-to-many column="group_id"/>
    </set>
  </class>
</hibernate-mapping>

Ответы [ 3 ]

1 голос
/ 16 сентября 2008

Вы можете запросить их, но не можете сделать это частью предложения where. Например.,

select t1.table2.x from table1 as t1

будет работать, но

select t1 from table1 as t1 where t1.table2.x = foo

не будет.

1 голос
/ 16 сентября 2008

Это просто свойства таблицы table2.

select t1.table2.property1, t1.table2.property2, ... from table1 as t1

Возможно, вам придется присоединиться, вот так

select t2.property1, t2.property2, ... 
    from table1 as t1
    inner join t1.table2 as t2

Вот соответствующая часть документа hibernate .

0 голосов
/ 16 сентября 2008

Допустим, в table2 есть столбец "color varchar(128)", и этот столбец правильно сопоставлен с Hibernate.

Вы должны быть в состоянии сделать что-то вроде этого:

from table1 where table2.color = 'red'

Это вернет все table1 строки, которые связаны с table2 строкой, столбец color которой имеет «красный» цвет. Обратите внимание, что в вашем отображении Hibernate ваше set имеет то же имя, что и таблица, на которую оно ссылается. Приведенный выше запрос использует имя set , , а не имя таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...