Проблема с типом пользователя гибернации

#hibernate #hibernate-mapping

#переход в режим гибернации #отображение гибернации

Вопрос:

Я пробую свои силы с типом пользователя Hibernate и столкнулся с некоторой проблемой. вот мой файл сопоставления

 <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());

      }
   }
  

я хочу получить доступ к экземпляру MyClass внутри метода nullSafeSet (…).
у меня есть доступ к MyClass_UserType в этом методе, но каким-то образом не удается получить экземпляр MyClass.

Есть ли какой-либо способ получить ссылку / доступ к этому экземпляру MyClass

Заранее спасибо

Комментарии:

1. В чем разница между «MyClassuserType» (из сопоставления), «MyClass_UserType» (из кода) и «my CompositeUserType» (из текста)?

2. @ Stefan Steinegger: я думаю, что я написал три слова для одного и того же MyClass_UserType / MyClassUserType, а третье — CompositeUserType, который я создал для обработки случая

Ответ №1:

Вы определяете MyClass в своем рабочем пакете, поскольку в файле сопоставления указано, что вы сопоставили таблицу MYTABLE с MyClass, но на самом деле определяете его, если это так, то я уверен, что экземпляр MyClass доступен внутри любого класса в том же пакете или где-то еще через импорт, поэтому, пожалуйста, проверьте его в своем MyClass.

Комментарии:

1. Это довольно длинное предложение.

2. И мог бы также использовать словарь