• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Help in HQL

 
Anurag Agarwal
Greenhorn
Posts: 1
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I am having difficulty creating an HQL statement. The following code is working

ICriteria criteria = session.CreateCriteria(typeof
(Organization));
criteria.CreateAlias("Addresses", "alist");
criteria.CreateAlias("alist.items", "add");
criteria.Add(Expression.Like("add.State", "U%"));
return criteria.List<Organization>();

but when I want to code the same in HQL I get an error "could not
resolve property: items of:". The hql is given below

string sql = "from Organization as o join fetch
o.Addresses a join fetch a.items x where x.State like 'U%'";
IQuery query = session.CreateQuery(sql);
return query.List<Organization>();

The mapping I am using is as follows

<class name="Organization" table="Organization" lazy="false">
<id name="OrganizationID" column="OrganizationID" type="int">
<generator class="native"/>
</id>
<property name="OrganizationName" column="OrganizationName"
type="String" not-null="true"></property>
<component name="Addresses">
<bag name="items" table="OrgAddressMap" lazy="false" cascade
="save-update" access="field">
<key column="OrganizationID"/>
<many-to-many class="Address" column="AddressID"/>
</bag>
</component>
</class>

What is wrong with the HQL statement?

Thanks

Anurag
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic