我有一个Contact类,我想为用户提供City and Province的AutoComplete。
我以为我在Contact对象中创建了两个集合,并从它们的联系表中加载了Cities和Province:
public class Contact {
public virtual string Name { get; set; }
public virtual string City { get; set; }
public virtual string Province { get; set; }
public virtual IList<String> Cities { get; set; }
public virtual IList<String> Provinces { get; set; }
}
并拥有如下映射文件:
<class name="Contact">
<id name="Id">
<generator class="native">
<param name="sequence">contact_id_seq</param>
</generator>
</id>
<property name="Name" />
<property name="City" />
<property name="Province" />
<property name="Cities" type="string" formula="SELECT DISTINCT city FROM contact" />
<property name="Provinces" type="string" formula="SELECT DISTINCT province FROM contact" />
</class>
但这不起作用。有什么办法可以实现吗?
谢谢。
答案 0 :(得分:0)
属性上的公式是一个SQL表达式,它定义属性的值,因此select应返回单个值。此外,通过按照您提议的方式工作,您将在每个实体上复制这些值,最好将其定义为静态列表,并在创建新会话时通过自定义hql填充值。