I have with a map with an entity as index. Here's an excerpt from mapping:
Code:
<class name="com.fis.om.Pipeline">
<id column="id" name="id">
<generator class="native" />
</id>
<map
name="employees"
lazy="false"
>
<key column="pipeline" />
<index-many-to-many
column="role"
class="com.fis.om.Role"
/>
<many-to-many
column="pipelineAssoc"
class="com.fis.om.Employee"
/>
</map>
</class>
<class name="com.fis.om.PipelineStage">
<id column="id" name="id">
<generator class="native" />
</id>
<property name="name" />
<many-to-one name="responsible" class="com.fis.om.Role" />
</class>
<subclass
name="com.fis.om.Company"
discriminator-value="13"
>
<many-to-one name="stage" class="com.fis.om.PipelineStage" />
<many-to-one name="pipeline" class="com.fis.om.Pipeline" />
</subclass>
I want to make a Criteria query against Company. In HQL it would be ( not a real query, just a part related to the "employees" association ):
SELECT c FROM Company AS c WHERE c.pipeline.employees[ c.stage.responsible ].id = ?
What's the good way to do it with Criteria API?
Using Hibernate 2.1.4
Code: