Вы можете использовать scala & java вместе для того, что, по вашему мнению, лучше всего подходит.
Я знаю, что спящий режим должен быть в java.
Это не обязательно так. Вы можете использовать классы scala в качестве объектов ORM Hibernate. Вам просто нужно убедиться, что скомпилированные файлы .class попадают в те же геттеры, сеттеры и конструктор по умолчанию, которые ожидает Hibernate.
Даже ваш модуль веб-приложений можно записать в scala. Контроллеры просто должны соблюдать контракт, который ожидает Spring MVC.
В общем, почти все, что написано на Java, может быть переписано в scala. Из грубых есть исключения, но не для каждого из них ограничивать себя от попыток. Предполагая, что ваш существующий код не делает ничего сумасшедшего (т. Е. Отражения черной магии), все должно быть хорошо.
Интересный вопрос здесь в том, как получить его работы с Maven ...
Существует existing SO question, который описывает с помощью maven-scala-plugin, чтобы получить этот вид проекта рабочего (мульти-модуль со смешанными SCALA и ява ресурсов) , Единственный дополнительный комментарий, который я добавлю к этому решению, заключается в том, что, по моему опыту, мы могли бы заставить его работать с модулями scala, зависящими от java-источников, а не наоборот. Это связано с тем, что наша конфигурация maven использовала компилятор java и компилятор scala отдельно. Теоретически компилятор scala может скомпилировать файлы Java, поэтому, если вы настроили его просто использовать один компилятор для всего, вы не столкнетесь с этим ограничением.
EDIT:
Бланкмэн прокомментировал:
@Jesse так как вы сделали это и тогда? Не уверен, что я понял проблему с maven.
Да, я работал над несколькими проектами, которые использовали смешанные источники java и scala. Мы не использовали Scala для слоя Hibernate, но мы сделали для всего остального.
Проблема с maven, которую я описываю, была следствием нашей конфигурации maven-scala-plugin. Вы должны настроить его, чтобы знать, как скомпилировать ваши файлы scala. Конфигурация (возможно, неверная) была предназначена для компиляции java-файлов сначала, используя javac, а затем скомпилировать файлы scala, используя scalac.Это означало, что нам не разрешалось писать java-код, который ссылался на классы scala, потому что они не будут доступны во время компиляции. При правильной настройке должно быть возможно использовать компилятор scalac для компиляции всех ваших источников вместе, что устранит это неудобное ограничение. Вопрос SO, с которым я связан выше, имеет конфигурацию примера, а также некоторую дискуссию о проблемах времени компиляции, о которых я говорю. Если вам нужна дополнительная информация о настройке плагина, ознакомьтесь с сайтом плагина (также связанным с выше) для официального документа.
Мой совет: «не надо». ;) –