(转)实现CompositeUserType接口
Hibernate还提供了一个CompositeUserType借口,它不仅能完成和UserType相同的功能,而且还提供了对Hibernate查询语言(HQL)的支持.下面通过例子来介绍CompositeUserType接口的方法.
假定在Customer类中包含了一个Name类型的name属性,代表客户的姓名.例1是Name类的源程序.
例1:
从例1看出,Name类是可变类.因此,如果需要修改Customer对象的 name 属性,只需调用Name类的setFirstname()和setLastname()方法:
从例2看出,CompositeUserType包含了UserType接口的大部分方法,此外,它还包含了用来访问Name类的所有属性的方法,getPropertyNames(),getPropertyTypes(),getPropertyValue(),setPropertyValue()
在Customer.hbm.xml文件中,以下代码用于把Name类型的name属性映射到CUSTOMERS表的FIRSTNAME和LASTNAME字段:
在应用程序中创建HQL语句时,可以通过"c.name.firstname"的形式访问Customer的name属性的firstname属性:Customer customer = session.find("from Customer as c where c.name.firstname='Tom'");
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lifaming15/archive/2007/06/23/1663786.aspx