[英]Hibernate key-many-to-one
I have a problem getting the right data out of the table. 我在从表中获取正确的数据时遇到问题。 The class CompanyActualData
contains a member of the class CompanyActualDataPK
. 该类CompanyActualData
包含类的成员CompanyActualDataPK
。 The class CompanyActualDataPK
contains a member of the class Entity
and the String isin
. CompanyActualDataPK
类包含Entity
类的成员,而String isin
。 Entity
has a String visibility
, that I would like to filter for. Entity
具有String visibility
,我想对其进行过滤。 I would like to get all CompanyActualData
, having a special visibility
and a special isin
. 我想获取所有具有特殊visibility
和特殊isin
CompanyActualData
。
At the moment I struggle creating the right criteria. 目前,我在努力制定正确的标准。
List<CompanyActualData> l =
session.createCriteria(CompanyActualData.class)
.add(Restrictions.eq("companyActualDataPK.isin", isin))
.createCriteria("companyActualDataPK")
.add(Restrictions.eq("companyActualDataPK.entity.visible", visibility))
.list();
I always get the error 我总是得到错误
could not resolve property: companyActualDataPK.entity.visible of: de.ll.web.pm.services.company.actual.CompanyActualData 无法解析属性:companyActualDataPK.entity.visible的以下内容:de.ll.web.pm.services.company.actual.CompanyActualData
Perhaps anybody has a hint. 也许有人暗示。
<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>
By doing createCriteria("companyActualDataPK")
, the Criteria
is getting rooted at the PK class. 通过执行createCriteria("companyActualDataPK")
,该Criteria
将植根于PK类。 All property names given in following Restriction
s will be relative to the CompanyActualDataPK
class. 以下Restriction
给出的所有属性名称都将相对于CompanyActualDataPK
类。
Try doing: 尝试做:
List<CompanyActualData> l =
session.createCriteria(CompanyActualData.class)
.add(Restrictions.eq("companyActualDataPK.isin", isin))
.add(Restrictions.eq("companyActualDataPK.entity.visible", visibility))
.list();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.