Столбцы запросов HQL в наборе

Можно ли получить доступ к отдельным столбцам таблицы 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>
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
0
5 330
3

Ответы 3

Это просто свойства свойства table2 table1.

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

Вот соответствующая часть спящий режим.

Вы можете запрашивать их, но не можете включить их в предложение where. Например.,

select t1.table2.x from table1 as t1

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

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

не стал бы.

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

У вас должно получиться что-то вроде этого:

from table1 where table2.color = 'red'

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

Другие вопросы по теме