2013-09-25 2 views
0

По словам Джеймса и Томаса Mapping Oracle XMLType on JPA (EclipseLink), поля XMLType обрабатываются (сопоставляются и сохраняются) с помощью @Customizer и DescriptorCustomizer.Отображение типа Xml в JPA (EclipseLink/Oracle Toplink)

У меня мало сомнений в этом подходе.

  1. Почему атрибуту xmlField не нужен @column этой заметки?
  2. Почему мы идем для DescriptorCustomizer для maapping xmlField? Это только для отображения полей? Или это может также сохраниться в этом поле?
  3. DirectToXMLTypeMapping можно использовать для Тип объекта? (Пожалуйста, обратитесь: http://docs.oracle.com/cd/E15051_01/web.1111/b32441/relmapun.htm#CHDFIFEF)
  4. Как из сообщения Томаса, как этот xmlField будет сохраняться? Нужно писать методы обратного вызова?

Просьба уточнить меня. Извините, если мой вопрос бессмыслен. Просьба предоставить некоторые ссылки и документацию, чтобы понять отображение полей XMLType в JPA (EclipseLink/Oracle Toplink).

ответ

0

XMLType - это специализированный тип поля Oracle, и я предполагаю, что он не работает с простым базовым JPA-сопоставлением. EclipseLink имеет собственный тип DirectToXMLTypeMapping, который может обрабатывать конверсии XMLType Oracle в/из строки Java. В приведенном выше примере пользовательский интерфейс сначала удаляет существующее сопоставление, которое создается посредством аннотаций для атрибута «xmlField». Это по сути уничтожает любую информацию @Column, которая могла быть добавлена. Затем он добавляет новое DirectToXMLTypeMapping, содержащее всю информацию, необходимую для этого поля, поэтому нет необходимости использовать аннотации атрибута.

В качестве альтернативы вы можете определить аннотацию @Column и любые другие параметры, и вместо того, чтобы просто удалить сопоставление, вы можете получить объект DatabaseMapping из дескриптора и вытащить из него имя столбца и другие значения, чтобы заполнить новый файл DirectToXMLTypeMapping ,

Отображение - это то, что описывает, как атрибут вашего объекта относится к полю базы данных. Поэтому он должен обрабатывать поиск, а также вставки/обновления, преобразовывая его в/из типа java в/из типа базы данных. В опубликованной вами ссылке атрибут атрибута xmlType объекта преобразует строку Java в XML-тип Oracle настойчиво и отменяет ее при чтении из БД.

+0

Спасибо Крису ... хорошие моменты. –

Смежные вопросы