В настоящее время я разрабатываю webapp, который использует Oracle как базу данных. Мне уже сообщили, что мой webapp должен работать и на Sybase ASE. Моя база данных Oracle использует последовательности для генерации идентификаторов, и я сопоставил свои классы домена, чтобы использовать эти последовательности. Насколько я знаю, Sybase ASE не имеет последовательностей, а тождеств. И вот моя проблема. Что делать с кодом/конфигурацией для работы с Oracle и Sybase. Некоторое «условное отображение» идентификатора для каждого домена будет иметь место.Grails - условное отображение
Я просто не хочу комментировать/раскомментировать строки в сопоставлениях каждый раз, когда я строю webapp для другой базы данных, чем уже сопоставлен. Есть ли у кого-нибудь идеи, что делать?
Существует еще одна опасность: существуют другие различия между Oracle и Sybase, которые влияют на отображение (я не создаю структуру базы данных, используя dbCreate = "create"
). На данный момент я ничего не вижу. Любые впечатления?
EDIT: Оказалось, что это не представляется возможным сделать одно отображение для обеих баз данных. В моей структуре Oracle используются кавычки в именах столбцов и таблиц. И цитаты не разрешены в Sybase ASE. Мое (не приятное и красивое) решение меняет (комментировать/раскомментировать) отображение при создании webapp на определенной платформе.
Btw Я большой поклонник Grails, и эта картинная вещь кажется недостатком. Если бы я использовал «чистый» Hibernate, у меня было бы два сопоставления в xml-файлах, и я бы изменил их в зависимости от базовой базы данных. Но Grails не дает мне возможности иметь два отображения.
Это звучит красиво! Когда я закончу установку Sybase, я попробую. – emstol
К сожалению, я не могу проверить, сработало ли это. Я считаю, что это ... мои имена идентификаторов Oracle цитируются (например, «SomeTableID»).Sybse ASE не разрешает кавычки в именах столбцов/таблиц. И вот чего я боялся. У меня не может быть одного сопоставления для обеих баз данных. – emstol