Bạn có thể sử dụng scala & java với nhau cho bất cứ điều gì bạn nghĩ rằng mỗi công trình tốt nhất cho.
Tôi biết ngủ đông sẽ phải ở dạng java.
Điều này không nhất thiết phải đúng. Bạn có thể sử dụng các lớp scala làm đối tượng Hibernate ORM. Bạn chỉ cần đảm bảo rằng các tệp .class được biên dịch kết thúc với cùng một getters, setters và hàm tạo mặc định mà Hibernate mong đợi.
Ngay cả mô-đun ứng dụng web của bạn cũng có thể được viết bằng scala. Các bộ điều khiển chỉ cần tuân theo hợp đồng mà Spring MVC mong đợi.
Nói chung, hầu hết mọi thứ được viết bằng Java đều có thể được viết lại bằng scala. Của thô có ngoại lệ nhưng không per-maturaly giới hạn mình từ cố gắng. Giả sử mã hiện tại của bạn không làm bất cứ điều gì để phát điên (tức là phản chiếu ma thuật đen), nó sẽ ổn thôi.
Câu hỏi thú vị ở đây là làm thế nào để có được nó làm việc với Maven ...
Có một existing SO question trong đó mô tả cách sử dụng maven-scala-plugin để có được loại này của dự án làm việc (đa mô-đun với nguồn scala và java hỗn hợp) . Chỉ có thêm bình luận tôi sẽ thêm vào giải pháp này là, theo kinh nghiệm của tôi, chúng tôi chỉ có thể làm cho nó làm việc với các mô-đun scala đang phụ thuộc vào nguồn java, không phải là cách khác xung quanh. Điều này là do cấu hình maven của chúng tôi đã sử dụng trình biên dịch java và trình biên dịch scala một cách riêng biệt. Về lý thuyết, trình biên dịch scala có thể biên dịch các tệp Java vì vậy nếu bạn cấu hình nó để chỉ sử dụng một trình biên dịch cho mọi thứ, bạn sẽ không gặp phải giới hạn này.
EDIT:
Blankman nhận xét:
@Jesse vì vậy bạn đã làm điều này cũng sau đó? không chắc tôi hiểu vấn đề maven.
Có, tôi đã làm việc trên một vài dự án đã sử dụng nguồn hỗn hợp java và scala. Chúng tôi đã không sử dụng Scala cho lớp Hibernate nhưng chúng tôi đã làm cho mọi thứ khác.
Vấn đề về maven mà tôi mô tả là hậu quả của cấu hình plugin maven-scala-plugin của chúng tôi. Bạn phải cấu hình nó để biết cách biên dịch các tệp scala của bạn. Cấu hình của chúng tôi (có thể không chính xác) được thiết lập để biên dịch các tệp java trước, bằng cách sử dụng javac, sau đó biên dịch các tệp scala, sử dụng scalac.Điều này có nghĩa là chúng tôi không được phép viết mã java tham chiếu các lớp scala vì chúng sẽ không có sẵn vào thời gian biên dịch. Với cấu hình thích hợp, bạn có thể sử dụng trình biên dịch scalac để biên dịch tất cả các nguồn của bạn với nhau, điều này sẽ loại bỏ hạn chế khó xử này. Câu hỏi SO tôi đã liên kết ở trên có cấu hình ví dụ cũng như một số cuộc thảo luận về các vấn đề thời gian biên dịch mà tôi đang nói đến. Nếu bạn cần thêm tài liệu tham khảo để thiết lập plugin, hãy xem trang web của plugin (cũng được liên kết ở trên) cho tài liệu chính thức.
Lời khuyên của tôi: "không". ;) –