I am in charge of a rebuilding a website that gets about 250,000 visitors a day. We'd like to use Scala, but it does not work very well with Spring (in some minor cases) and Hibernate (there is a major and very annoying mismatch here if you want to use scala collections, which we do).
The application itself is going to have about 40-50 tables.
Other than Hibernate, is there an ORM that works awesome with Scala and is as performant and reliable as Hibernate? Does it also have the same capabilities, or are we going to run into leaky-abstractions if we don't use Hibernate?
It would be a big risk for us to go with a framework that is newer and doesn't seem to have a lot of industry backing... and at the same time, Hibernate is a real pain to program against when using Scala.
1) The Java Collection <-> Scala Collection is absolutely painful. There is a lot more boilerplate and crap to write.
2) The IDE doesn't import JavaConversions and java interfaces automatically... so we this needs to be done manually. Optimizing Imports in IDEA is going to destroy all the manual work.
3) There is also a performance cost to converting back and forth all the time in your domain objects and your dao classes.
4) Not to mention there needs to be a lot of casting, which produces code ugly as sin.
I actually would love to write my own orm that is 100% tailored to scala, but obviously this is really outside of the scope of our project for now.
So what is the best approach?