Puedes usar scala & java juntos para lo que creas que funciona mejor.
Sé que hibernate tendrá que estar en java.
Esto no es necesariamente cierto. Puede usar clases scala como objetos Hibernate ORM. Solo debe asegurarse de que los archivos .class compilados terminen con los mismos getters, setters y constructores predeterminados que Hibernate espera.
Incluso su módulo de aplicación web se puede escribir en scala. Los controladores solo deben cumplir el contrato que Spring MVC espera.
En general, casi todo lo escrito en Java se puede volver a escribir en scala. De tosco hay excepciones pero no te limitas por madurez a intentarlo. Suponiendo que su código actual no hace nada alucinado (es decir, reflexión de magia negra), debería estar bien.
La pregunta interesante aquí es cómo conseguir que funcione con Maven ...
Hay un existing SO question que describe el uso de la maven-scala-plugin para obtener este tipo de proyectos de trabajo (multi-módulo con recursos Scala y java mixtos) . El único comentario adicional que agregaré a esta solución es que, según mi experiencia, solo podríamos hacerlo funcionar con módulos scala que dependan de fuentes Java, y no al revés. Esto fue porque nuestra configuración maven utilizó el compilador de java y el compilador de scala por separado. En teoría, el compilador scala también puede compilar archivos Java, por lo que si lo configuraste para usar solo un compilador para todo, no encontrarás esta limitación.
EDIT:
Blankman comentado:
@Jesse por lo que han hecho esto también entonces? no estoy seguro de entender el problema Maven.
Sí, he trabajado en un par de proyectos que han utilizado fuentes mixtas de java y scala. No usamos Scala para la capa de Hibernate, pero lo hicimos para todo lo demás.
El problema de maven que estoy describiendo fue una consecuencia de nuestra configuración de maven-scala-plugin. Debe configurarlo para saber cómo compilar sus archivos scala. Nuestra configuración (probablemente no es correcta) se configuró para compilar archivos java primero, usando javac, y luego compilar archivos scala, usando scalac.Esto significaba que no se nos permitía escribir código java que hiciera referencia a las clases scala porque no estarían disponibles en tiempo de compilación. Con la configuración adecuada, debería ser posible utilizar el compilador scalac para compilar todas las fuentes juntas, lo que eliminará esta restricción incómoda. La pregunta SO a la que me he vinculado anteriormente tiene una configuración de ejemplo, así como algunas discusiones sobre los problemas del tiempo de compilación de los que estoy hablando. Si necesita más referencias para configurar el complemento, consulte el sitio web del complemento (también vinculado al anterior) para el documento oficial.
Mi consejo: "do not". ;) –