我正在尝试使用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实例的引用/访问
提前致谢
答案 0 :(得分:1)
你是否在你的工作包中定义了MyClass,因为映射文件说你用 MyClass 映射了一个表格 MYTABLE 但是真的定义了它,如果它是那么我我确信MyClass的实例可以在同一个包中的任何类内部或通过import导入其他任何类,因此请将其作为MyClass。