Hibernate的自定义数据类型实现接口——UserType详解
2010-05-29 16:17
956 查看
import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import net.sf.hibernate.HibernateException; /** * @author hy-he * */ public interface UserType { /** * 返回UserType所映射字段的SQL类型(java.sql.Types) * 返回类型为int[],其中包含了映射个字段的SQL类型代码 * (UserType可以映射到一个或者多个字段) * @return */ public int[]sqlTypes(); /** * UserType.nullSafeGet()所返回的自定义数据类型 * @return */ public Class returnedClass(); /** * 自定义数据类型的比对方法 * 此方法将用作脏数据检查,参数x、y分别为数据的两个副本 * 如果equals方法返回false,则Hibernate将认为数据发生变化,并将变化更新到数据库表中 * @param x * @param y * @return * @throws HibernateException */ public boolean equals(Object x,Object y)throws HibernateException; /** * 从JDBC ResultSet读取数据,将其转换为自定义类型后返回 * (此方法要求对可能出现null值进行处理) * names中包含了当前自定义类型的映射字段名称 * @param rs * @param names * @param owner * @return * @throws HibernateException * @throws SQLException */ public Object nullSafeGet(ResultSet rs,String[] names,Object owner)throws HibernateException,SQLException; /** * 本方法将在Hibernate进行数据保存时被调用 * 我们可以通过PreparedStateme将自定义数据写入到对应的数据库表字段 * @param st * @param value * @param index * @throws HibernateException * @throws SQLException */ public void nullSafeSet(PreparedStatement st,Object value,int index)throws HibernateException,SQLException; /** * 提供自定义类型的完全复制方法 * 本方法将用构造返回对象 * 当nullSafeGet方法调用之后,我们获得了自定义数据对象,在向用户返回自定义数据之前, * deepCopy方法将被调用,它将根据自定义数据对象构造一个完全拷贝,并将此拷贝返回给用户 * 此时我们就得到了自定义数据对象的两个版本,第一个是从数据库读出的原始版本,其二是我们通过 * deepCopy方法构造的复制版本,原始的版本将有Hibernate维护,复制版由用户使用。原始版本用作 * 稍后的脏数据检查依据;Hibernate将在脏数据检查过程中将两个版本的数据进行对比(通过调用 * equals方法),如果数据发生了变化(equals方法返回false),则执行对应的持久化操作 * * @param value * @return * @throws HibernateException */ public Object deppCopy(Object value)throws HibernateException; /** * 本类型实例是否可变 * @return */ public boolean isMutable(); }
相关文章推荐
- Hibernate的自定义数据类型实现接口——UserType详解
- Hibernate的自定义数据类型实现接口——UserType详解
- Hibernate的自定义数据类型实现接口之一——UserType祥解
- 利用抽象工厂实现自定义多数据类型接口
- hibernate中自定义数据类型的使用---UserType,CompositeUserType接口的使用
- 使用自定义数据类型实现评论数时间、评论总数计数(mapreduce)
- C#通过IConvertible接口来实现自定义类型转换和计算
- hibernate之自定义数据类型
- Hibernate 自定义数据类型
- 更方便的数据模式:Hibernate高级映射技术——自定义数据类型StringMap
- Enterprise Solution 生成实体数据访问接口与实现类型 Code Smith 6.5 模板文件下载
- 在SQL和ERWIN中用自定义类型、规则和默认值实现check约束从而保证数据的完整性
- Hadoop——自定义数据类型,实现WritableComparable, 并且 分组,排序
- Android开发:使用序列化接口Parcelable、Serializable实现Activity间传递复杂数据类型参数
- Hibernate自定义数据类型映射oracle中xmlType 广东精鹰软件工作室(刘正仁)
- TreeSet集合存放自定义类型的对象,可以使用比较器,实现Comparable接口自己设置排序方式
- AIDL实现不同应用之间跨进程通讯及传递与返回各种数据类型和远程接口回调
- hibernate自定义类型部分接口详解
- Effective C# 学习笔记(四十一)使利用DynamicObject或IDynamicMetaObjectProvider接口实现数据驱动的动态类型
- 4-4 求自定类型元素的平均 (10分) 本题要求实现一个函数,求N个集合元素S[]的平均值,其中集合元素的类型为自定义的ElementType。 函数接口定义: ElementType Aver