Problema de criterios de hibernación con clave compuesta

Tengo este mapeo de hibernación:

<class name="CoverageTerm" table="coverage_term">

    <composite-id name="id" class="CoverageTermPK">
        <key-many-to-one name="productTerm" class="ProductTerm">
            <column name="termtype_id"></column>
            <column name="product_id" ></column>
        </key-many-to-one>
        <key-many-to-one name="productCoverage" class="ProductCoverage" column="product_coverage_id"></key-many-to-one>
    </composite-id>

    <property name="data"/>
</class>

Esta es una asignación de teclas compuestas simple con una relación con la tabla productCoverage y una relación de teclas compuestas con productterm.

Ahora el problema viene en mi función de búsqueda:

public CoverageTerm getCoverageTermFromProductTermCoverage(ProductTerm productTerm, ProductCoverage productCoverage) {
    Criteria critCt = getSession().createCriteria(CoverageTerm.class);
    Criteria critCtId = critCt.createCriteria("id");
    critCtId.add(Restrictions.eq("productTerm", productTerm));
    critCtId.add(Restrictions.eq("productCoverage", productCoverage));
    return (CoverageTerm) critCt.uniqueResult();
}

Esto debería permitirme hacer un subcriterio en "id" (que es la clave principal, CoverageTermPK) y agregarle restricciones, pero cuando lo ejecuto aparece el mensaje de error:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.QueryException: could not resolve property: productTerm of: CoverageTerm

Esto se siente extraño, ¿no debería obtener el CoverageTermPK allí? Si trato con un subcriterio en la propiedad "data", los criterios funcionan, simplemente no puedo obtener el PK en el subcriteria "id".

¿Alguna idea de porqué está pasando esto

Respuestas a la pregunta(1)

Su respuesta a la pregunta