В Hibernate HQL, как бы вы опрашивали через ассоциацию «многие ко многим». Если у меня есть Компания с несколькими ProductLines, и другие компании могут предлагать эти же линейки продуктов, у меня есть компания Company, компания ProductLine и таблица ассоциации CompanyProductLine. В SQL я могу получить то, что мне нужно, вот так:
select * from company c where c.companyId in (select companyId from companyProductLine cpl, productline pl where cpl.productLineId = pl.productLineId and pl.name= 'some value');
Моя проблема связана с ассоциацией, которую я определил в файле Company.hbm.xml:
<set name="productLines"
cascade="save-update"
table="CompanyProductLine">
<key column="companyId"/>
<many-to-many class="com.foo.ProductLine" column="productLineId" />
</set>
Любой HQL, который мне, кажется, придет, выдаст исключение Hibernate: «ожидающие» элементы или «индексы».
Мысли о том, каким будет правильный HQL?