Tôi rất mới đối với cả Scala và Slick và cố gắng tìm hiểu nó Tôi đang viết một ứng dụng nhỏ hoạt động với một cơ sở dữ liệu đơn giản.Scala Slick và các loại phức tạp trong cơ sở dữ liệu của tôi
Hầu hết các kinh nghiệm trước đây của tôi đến từ .Net và khung Entity vì vậy tôi đã tự hỏi nếu như trong Entity Framework với thuộc tính ComplexType
nếu Slick cho phép tôi làm như vậy.
Về cơ bản một trong các bảng của tôi là mối quan hệ 1-1 và đối với một số người trong số họ, tôi muốn tạo một đối tượng và sử dụng nó làm kiểu phức tạp. Rõ ràng trong cơ sở dữ liệu, đây chỉ là các cột phụ trên bảng, nhưng tôi đã tự hỏi liệu Slick có thể ánh xạ các cột đó tới một đối tượng trong lớp Table
của tôi hay không. Xem ví dụ bên dưới.
Tôi sẽ sử dụng ví dụ về mục nhập Blog.
Lớp chính của tôi mở rộng Bảng là BlogEntry
và nó chứa văn bản của mục nhập. Sau đó nói rằng tôi muốn trong lớp đó một lớp khác được gọi là EntryDetails
có chứa thời gian mục nhập đã được đăng và thời gian nó được cập nhật lần cuối.
Trong cơ sở dữ liệu, tất cả các trường đó sẽ nằm trong cùng một bảng, nhưng khi đọc trong đó sẽ là một đối tượng chứa đối tượng khác. Điều này có thể với Slick?
Có, điều đó là có thể. Bạn cần [triển khai một 'TypeMapper' tùy chỉnh] (http://slick.typesafe.com/doc/1.0.1/lifted-embedding.html#user-defined-functions-and-types) cho điều đó. (Tôi sẽ viết một câu trả lời thực sự sau.) – Carsten
Tuyệt vời cảm ơn bạn rất nhiều. Yea khi bạn làm tôi sẽ chấp nhận nó như là câu trả lời. Cảm ơn bạn rất nhiều vì đã trả lời nhanh. – twreid
Bạn đã giải quyết được vấn đề của mình với TypeMapper chưa? Bạn vẫn cần một mẫu làm thế nào để làm điều đó? – dirceusemighini