Hibernate UserType问题

时间:2011-04-12 16:00:22

标签: hibernate hibernate-mapping

我正在尝试使用Hibernate的userType并遇到一些问题。这是我的映射文件

<hibernate-mapping>
   <class name="MyClass"
      table="MYTABLE">
      <id name="uuid" type="java.lang.String">
         <column name="UUID" />
         <generator class="uuid" />
      </id>

      <property name="myClass_UserType" type="MyClassUserType" >
         <column name="A"/>
         <column name="B"/>
         <column name="C"/>
        </property>

   </class>
</hibernate-mapping>

这是我的CompositeUserType

中的代码
@Override
   public void nullSafeSet(PreparedStatement ps, Object arg1, int index,
         SessionImplementor arg3) throws HibernateException, SQLException {

      if(arg1==null){
         //todo
      }
      else{
          MyClass_UserType mc=(MyClass_UserType)arg1;
          mc=dao.save(mc);
          ps.setString(index, mc.getXYZ());
          ps.setString(index+1, mc.getXYZ());
          ps.setString(index+2, mc.getXYZ());
           ps.setString(index+3, mc.getXYZ());

      }
   }

我希望在nullSafeSet(...)方法中访问MyClass实例。 我可以在此方法中访问MyClass_UserType,但有些人无法获取MyClass的实例。

有没有办法获得这个MyClass实例的引用/访问

提前致谢

1 个答案:

答案 0 :(得分:1)

你是否在你的工作包中定义了MyClass,因为映射文件说你用 MyClass 映射了一个表格 MYTABLE 但是真的定义了它,如果它是那么我我确信MyClass的实例可以在同一个包中的任何类内部或通过import导入其他任何类,因此请将其作为MyClass。