Доступ к столбцу типа «Java-объект» в отчете Birt с каскадными запросами - PullRequest
0 голосов
/ 29 ноября 2011

У меня возникли проблемы с отчетом Birt, и я, похоже, не могу с ним разобраться.Для меня это выглядит так, как будто это ограничение Birt, поэтому я спрашиваю здесь.Если это так, я могу перестать ломать голову над этим:

  • У меня есть набор данных "A", который содержит один столбец с именем "метаданные" типа "Java Object"
  • У меня есть второй набор данных «B», который является подзапросом, который привязывается к столбцу «метаданных» набора данных «A».У самого B снова есть столбец с именем «затронутый» типа «Объект Java»
  • . В моем третьем наборе данных «C» я связываюсь со столбцом «затронутых» набора данных «B» и имеет столбец с именем «family "типа" Java Object "

Что я нахожу здесь особенно странным, так это то, что я вижу правильное извлечение значения для семьи в отладчике, но если я пытаюсь получить к нему доступ, оно всегданоль.Однако, если я установлю тип столбца в String, я получу ненулевое значение.Так есть ли причина, по которой Бирт делает это?

Крис

Ответы [ 2 ]

0 голосов
/ 30 ноября 2011

Если Java-объект хранится в вашей базе данных как большой двоичный объект, то, насколько я знаю, BIRT не сможет интерпретировать его напрямую.

Используете ли вы базу данных оракула? Если бы вам нужно было подключиться через альтернативный клиент (а не через приложение Java), вы бы смогли запросить поле и получить значимые данные? (Как, например, это сериализованные данные или они хранятся в формате BLOB-объектов)?

0 голосов
/ 30 ноября 2011

Исходя из прошлого опыта, я думаю, что ответ заключается в том, что BIRT может представлять только относительно простые типы данных - в основном символы, даты и числа (кажется, что он может справиться с объектами CLOB, но тогда они, по сути, представляют собой длинные строки символов)

Поскольку невозможно представить поля объекта, они представлены в отчете как NULL. Если вы установите тип данных поля объекта как строку, он будет отображать двоичное содержимое объекта в виде строки шестнадцатеричных цифр. (По крайней мере, это был мой опыт при непреднамеренном возврате объектов из запросов MySQL.)

...