Есть ли в Scala ORM генерация кода из SQL -> Scala?
Я использую Squeryl как ORM с MySQL. Это новый проект, работающий с существующими схемами, которые содержат несколько сотен таблиц.
Насколько я могу судить, ни Squeryl, ни какие-либо из доступных ORM Scala не могут генерировать O (классы Scala) из R (таблицы mysql). Я полагаю, что не было бы слишком сложно свернуть свою собственную, сканируя информационную схему, но я бы не стал дублировать это усилие, если бы кто-то уже сделал это.
Мне также любопытно, если кто-нибудь может сказать мне, почему направление R->O так часто игнорируется. По моему опыту, O->R является исключением, а не правилом.
Я, вероятно, начну идти по пути собственного решения. Если это когда-нибудь будет завершено, прежде чем я услышу о другом варианте, я опубликую ссылку на этот код.
Благодарю.
3 ответа
QueryDSL предоставляет вам утилиту, которая может генерировать код из существующих таблиц. Однако вам следует признать, что это в первую очередь Java-библиотека, а Scala там рассматривается только как расширение.
Я думаю, что поддержка RO - это вопрос времени и отзывов пользователей.
Мне любопытно, над какими проектами вы работаете, где вы считаете R->O правилом. Мой опыт, и я включаю не только свои собственные проекты, но и те, которые другие пользователи Squeryl упомянули в списке рассылки, заключается в том, что большинство проектов Squeryl являются преимущественно новыми приложениями, где база данных SQL используется для сохранения конкретной модели приложения, а не модель, созданная для соответствия существующей схеме. Как и большинство проектов ОС, разработчики, как правило, сосредотачиваются, в первую очередь, на функциях, которые им самим нужны, а во-вторых, на функциях, наиболее востребованных сообществом, поэтому я бы посоветовал вам заняться этим и в Squeryl Google Group.