Есть ли в Scala ORM генерация кода из SQL -> Scala?

Я использую Squeryl как ORM с MySQL. Это новый проект, работающий с существующими схемами, которые содержат несколько сотен таблиц.

Насколько я могу судить, ни Squeryl, ни какие-либо из доступных ORM Scala не могут генерировать O (классы Scala) из R (таблицы mysql). Я полагаю, что не было бы слишком сложно свернуть свою собственную, сканируя информационную схему, но я бы не стал дублировать это усилие, если бы кто-то уже сделал это.

Мне также любопытно, если кто-нибудь может сказать мне, почему направление R->O так часто игнорируется. По моему опыту, O->R является исключением, а не правилом.

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

Благодарю.

3 ответа

Решение

QueryDSL предоставляет вам утилиту, которая может генерировать код из существующих таблиц. Однако вам следует признать, что это в первую очередь Java-библиотека, а Scala там рассматривается только как расширение.

Я думаю, что поддержка RO - это вопрос времени и отзывов пользователей.

Существует Squealer, который запрашивает таблицы базы данных и генерирует код scala. Он использует Squeryl и другие библиотеки.
Мне удалось использовать его с минимальной настройкой.

Его gitub здесь

Мне любопытно, над какими проектами вы работаете, где вы считаете R->O правилом. Мой опыт, и я включаю не только свои собственные проекты, но и те, которые другие пользователи Squeryl упомянули в списке рассылки, заключается в том, что большинство проектов Squeryl являются преимущественно новыми приложениями, где база данных SQL используется для сохранения конкретной модели приложения, а не модель, созданная для соответствия существующей схеме. Как и большинство проектов ОС, разработчики, как правило, сосредотачиваются, в первую очередь, на функциях, которые им самим нужны, а во-вторых, на функциях, наиболее востребованных сообществом, поэтому я бы посоветовал вам заняться этим и в Squeryl Google Group.

Другие вопросы по тегам