直接看配置文件说明吧.一个Hibernate 的映射文件如下面的格式:<hibernate-mapping package="test">    <class name="Users"  table="USERS">
        <!--其它定义--!>
        <property name="result" column="RESULT" not-null="true" length="30" type="test.MyClass"/>
        <!--其它定义--!>
    </class>
</hibernate-mapping>
result 在数据库里是一个 string 类型,但转成 test.MyClass 要调用一个函数来转换。hibernate 支持做到使用自定义的函数将 string 转成 test.MyClass 类型吗?支持的话如何写这个配置。谢谢了。

解决方案 »

  1.   

    hibernate不支持
    也许可以尝试在test.MyClass类里新增一个带String参数的构造方法,在构造方法里进行转换(当心无限构造的问题)喵~``.
      

  2.   

    根据Hibernate的基本原理:
    1.定义一个JavaBean,添加它的setter与getter方法;
    2.将JavaBean与数据库的表进行绑定生成.hbm.xml文件
    3.Hibernate会根据.hbm.xml文件中的定义对JavaBean与数据库中表的定义进行插入操作楼主要实现的基本的这个功能,完全可以,在JavaBean中定义一个属性用来表示这个内部类
    然后修改这个属性的setter与getter,使之与内部类的与数据库表的字段的读取与插入想对应,即可。再具体的问题,可以再讨论,呵呵。BTW:可以看一下Hibernate的基本原理,就是这个样子的。
      

  3.   

    实现Hibernate中提供的用户类型自定义接口UserType and CompositeUserType。根据这个接口,可以实现自定义的数据类型。
      

  4.   

    何必呢~~
    返回结果后/插入数据前再转换呗~
    类型变化大的话,建议新建一个和hibernate映射bean一样的javabean,,这样就可以在get/set 方法里类型转换了哈
      

  5.   

    这里有一篇文章,或许对你有帮助:
    http://zhudengchao.javaeye.com/blog/257936
      

  6.   

    hibernate不支持 
    也许可以尝试在test.MyClass类里新增一个带String参数的构造方法,在构造方法里进行转换(当心无限构造的问题)