私は2つの単純なmapingsありますのHibernateのcreateCriteriaとの関連やcreateAlias
<class name="org.testing.Person" table="PERSON">
<id name="personId" type="long" column="PERSON_ID">
<generator class="native"/>
</id>
<property name="personName" type="string" not-null="true" column="PERSON_NAME"/>
<many-to-one name="personAddress" class="org.testing.Address" column="PERSON_ADDRESS" not-null="true" cascade="all" unique="true"/>
</class>
と
<class name="org.testing.Address" table="ADDRESS">
<id name="addressId" type="long" column="ADDRESS_ID">
<generator class="native" />
</id>
<property name="street" column="ADDRESS_STREET" type="string" />
<property name="city" column="ADDRESS_CITY" type="string" />
<property name="state" column="ADDRESS_STATE" type="string" />
</class>
は、私はこのような人のアドレスのプロパティを取得しよう:
session.createCriteria(Person.class)
.add(Restrictions.eq("personName", "Frodo"))
.createAlias("personAddress", "pa")
.setProjection(Projections.property("pa.street"))
.list();
とできます。このようなより :
session.createCriteria(Person.class)
.add(Restrictions.eq("personName", "Frodo"))
.createCriteria("personAddress")
.setProjection(Projections.property("street"))
.list();
は、それがスロー:org.hibernate.QueryException: could not resolve property: street of: org.testing.Person
。私は両方とも同じ結果を与えるべきだと思います。どこが間違っていますか? ありがとうございます!
なぜ2番目のクエリで** createCriteria( "personAddress")**を使用していますか? – ManuPK
** Person **クラスに** personAddress **という名前のプロパティがあり、** Address **クラスへの関連の一端です – catdog