У меня какой-то философский вопрос.
Я был очень счастливым пользователем Play Framework для Java в течение нескольких лет. Сейчас я пытаюсь погрузиться в Scala и функциональное программирование. В игре на основе Java я использовал Ebean, поэтому, согласно документации Play, я расширил класс модели Ebean и реализовал свои собственные модели. В каждой модели я объявил статическую переменную типа Finder для вызова запросов. Все это задокументировано и хорошо работает.
Однако в Play на основе Scala (v2.5.x) не так много документации об уровне сохраняемости. Хорошо, я понял, что есть рекомендация Play Slick, поскольку она использует идеи функционального программирования. Я немного взволнован этим, но почти нет документации о том, как его использовать. Я нашел способ, как включить Slick, как настроить источник данных и сервер базы данных и как внедрить базу данных в контроллер. Также есть очень небольшой пример того, как вызвать простой запрос к базе данных.
Вопрос в том, как на самом деле использовать Slick? Я исследовал некоторые сторонние учебные пособия и блоги, и кажется, что есть несколько способов.
1) Как определить модели? Кажется, я должен использовать классы case для определения самой модели. Чем я должен определить класс, расширяющий таблицу, чтобы определить столбцы и их свойства??
2) Какова структура проекта? Должен ли я создавать новый файл scala для каждой модели? По соглашению Java я должен, но иногда я видел все модели в одном файле scala (например, в Python Django). Я предполагаю, что отдельные файлы лучше.
3) Должен ли я создавать DAO для управления моделями? Или я должен создать что-то вроде Сервиса? Код, вероятно, будет таким же. Я спрашиваю о структуре проекта.
Заранее спасибо за любые идеи