Hi all!
I'm trying to create an HQL query, and order it, but I'm having some trouble, due to subclasses I guess.
This is my mapping:
Code:
<class name="ParsysUser" discriminator-value="U">
<id name="code" type="long" column="code" unsaved-value="null">
<generator class="native" />
</id>
<discriminator column="type" type="character" />
<property name="name" type="string" />
<property name="password" type="string" />
<subclass name="RemoteSystem"
discriminator-value="R" dynamic-update="true"
dynamic-insert="true">
</subclass>
<subclass name="CentralOperator"
discriminator-value="C" dynamic-update="true"
dynamic-insert="true">
<many-to-one name="personalInfo" class="Person" column="personalInfo"/>
</subclass>
<subclass name="AgencyOperator"
discriminator-value="A" dynamic-update="true"
dynamic-insert="true">
<many-to-one name="personalInfo" class="Person" column="personalInfo"/>
<many-to-one name="branchOffice" class="BranchOffice" column="branchOffice"/>
</subclass>
<subclass name="es.parsec.parsys.user.Supplier"
discriminator-value="S" dynamic-update="true"
dynamic-insert="true">
<many-to-one name="personalInfo" class="Person" column="personalInfo"/>
</subclass>
<subclass name="es.parsec.parsys.user.Visitor"
discriminator-value="V" dynamic-update="true"
dynamic-insert="true">
</subclass>
</class>
<class name="Person">
<id name="code" type="long" column="code" unsaved-value="null">
<generator class="native" />
</id>
<property name="firstName" type="string" />
<property name="middleName" type="string" />
<property name="lastName" type="string" />
</class>
And this are my classes regardind the problem....
Code:
public class ParsysUser implements Principal
{
public static String REMOTE_SYSTEM = "R";
public static String CENTRAL_OPERATOR = "C";
public static String AGENCY_OPERATOR = "A";
public static String SUPPLIER = "S";
public static String VISITOR = "V";
private Long code;
private String name;
private String password;
private String type;
// follows setters and getters...
}
public class AgencyOperator extends ParsysUser
{
private Person personalInfo;
private BranchOffice branchOffice;
// follows setters and getters...
}
public class Person {
private Long code;
private String firstName;
private String middleName;
private String lastName;
// follows getters and setters
}
So, what Im trying to do is to get all the users from my database, who are AgencyOperators, order by their personalInfo's FirstName...
This is the error and the query:
Code:
net.sf.hibernate.QueryException: could not resolve property type: personalInfo [from ParsysUser as age where age.class = AgencyOperator order by age.personalInfo.firstName asc]
How should I implement the query? Can anyone help me?
Thanks in advance!