Могу ли я создать серверные Java-классы, OR-сопоставления и клиентские AS-классы из одного описания модели? - PullRequest
1 голос
/ 16 июня 2009

У меня есть приложение на сервере Java и клиентское приложение Flex. Для моей модели данных у меня есть типичные объекты, такие как Пользователь и т. Д., Которые в основном совпадают в базе данных, коде Java на стороне сервера и коде AS на стороне клиента. То есть открытые поля моих классов AS и Java имеют одинаковые имена и имеют те же типы и значения, что и соответствующие поля в таблице базы данных, имя которой совпадает с именем этих классов.

Для соответствия классов Java и таблиц БД я могу использовать любой ORM. Существуют ли какие-либо инструменты для автоматического создания классов AS (и, в идеале, соответствующего шаблонного кода Remoting) из классов Java? Я кратко посмотрел на BlazeDS , но, похоже, у него не было подобных инструментов, по крайней мере, я ничего не мог найти об этом.

Конечно, в идеальном мире я бы описал свои элементы данных один раз, и все DDL, Java-код и AS-код были автоматически сгенерированы. Существует ли такой инструмент и достаточно ли он применим?

О да, и было бы здорово, если бы исходным форматом могли быть файлы protobuf ...

Примечание: Похоже, это тот же вопрос, что и этот . Кажется, что ответы там указывают на то, что, по крайней мере, нет общего инструмента, который «все используют» или который имеет репутацию высокого качества.

Ответы [ 2 ]

2 голосов
/ 16 июня 2009
0 голосов
/ 16 ноября 2009

Единственные известные мне инструменты для генерации классов AS из серверного кода - это встроенные в конструктор Flex мастера для автоматического создания удаленных классов AS из ColdFusion CFC для использования с сервисом AMF на основе ColdFusion.

Что может быть полезно запомнить, так это то, что после получения сериализованного объекта Flex и создания для него экземпляра mx.utils.ObjectProxy (это относится к классу flex RemoteObject и службам на основе AMF, но я представьте, что расширение Protocol Buffer будет следовать той же схеме), процесс приведения прокси к классу Actionscript не так уж и сложен. Пока ваш класс Actionscript имеет свойства или методы доступа с именами, которые соответствуют свойствам сериализованного объекта, и псевдоним удаленного объекта, который соответствует типу сериализованного объекта, вы можете преобразовать прокси-объект объекта в удаленный класс без необходимости делать это. любая дополнительная работа.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...