1

テーブルから正しいデータを取得するのに問題があります。クラスには classCompanyActualDataのメンバーが含まれていCompanyActualDataPKます。クラスCompanyActualDataPKには、クラスのメンバーEntityと Stringが含まれますisin。フィルタリングしたいEntityString があります。スペシャルとスペシャルを持って、visibility全部手に入れたいです。CompanyActualDatavisibilityisin

現時点では、適切な基準を作成するのに苦労しています。

List<CompanyActualData> l = 
    session.createCriteria(CompanyActualData.class)
    .add(Restrictions.eq("companyActualDataPK.isin", isin))
    .createCriteria("companyActualDataPK")
    .add(Restrictions.eq("companyActualDataPK.entity.visible", visibility))
    .list();

私はいつもエラーが発生します

プロパティを解決できませんでした: companyActualDataPK.entity.visible of: de.ll.web.pm.services.company.actual.CompanyActualData

おそらく誰かがヒントを持っています。

<class name="de.ll.web.pm.services.company.actual.CompanyActualData" schema = "reporting"   table="company_actual">

        <composite-id name="companyActualDataPK" class="de.ll.web.pm.services.company.actual.CompanyActualDataPK">          
            <key-property name="isin" column="isin"/>
            <key-property name="countryId" column="country_id"/>
            <key-many-to-one  name="entity"     class="de.ll.web.pm.services.entity.Entity" lazy="false" >
                <column name="entity_id"></column> 
            </key-many-to-one> 
        </composite-id>

        <property name="sedol" column="sedol" not-null="false" />
        <property name="valueDouble" column="value_double" not-null="false" />
        <property name="valueString" column="value_string" not-null="false" />
        <property name="date" column="date_id" not-null="false" />

        <many-to-one name="currency"
            class="de.ll.web.pm.services.currency.Currency" lazy="false" insert="false" update="false">
            <column name="currency_id"></column>
        </many-to-one>  
    </class>

>

<class name="de.ll.web.pm.services.entity.Entity"
        table="md_entity" schema="reporting">

        <id name="entityId" column="entity_id" type="java.lang.String">
            <generator class="native" />
        </id>

        <property name="name" column="name" />
        <property name="description" column="description" />
        <property name="vendor" column="vendor" />
        <property name="visible" column="is_visible" type="java.lang.String"  />
        <property name="currency" column="is_currency" type="java.lang.String" />
</class>
4

1 に答える 1

1

を実行することcreateCriteria("companyActualDataPK")で、Criteriaは PK クラスに根ざしています。Restriction次の sで指定されるすべてのプロパティ名は、CompanyActualDataPKクラスに関連します。

やってみてください:

List<CompanyActualData> l = 
    session.createCriteria(CompanyActualData.class)
    .add(Restrictions.eq("companyActualDataPK.isin", isin))
    .add(Restrictions.eq("companyActualDataPK.entity.visible", visibility))
    .list();
于 2012-06-19T16:51:02.207 に答える