2012-10-18 27 views
5

Mỗi nhà cung cấp JPA (ít nhất là hibernate, eclipselink và openjpa) cung cấp khả năng tạo lược đồ ddl trên cơ sở các lớp thực thể jpa. Nhưng mỗi hệ thống quản lý cơ sở dữ liệu đều có các kiểu dữ liệu riêng của mình.jpa ánh xạ loại java vào kiểu cơ sở dữ liệu

Vậy làm cách nào để các nhà cung cấp dịch vụ jpa quyết định chọn loại dữ liệu sql nào. (Tôi nghĩ rằng nó sẽ là nhà cung cấp cụ thể). Có bản đồ như String->varchar(xx), boolean->tinyint và v.v. Nhưng sau đó bản đồ này phải tồn tại cho mọi cơ sở dữ liệu, đúng không? Bất cứ ai có thể đưa tôi đi đúng hướng không? Tôi tìm kiếm trong mã nguồn ngủ đông nhưng tôi không tìm thấy đoạn mã đúng.

Cảm ơn!

+2

Tìm mã nguồn của lớp MySQLDialect cho chế độ ngủ đông – Reddy

Trả lời

1

thì bản đồ này phải tồn tại cho mọi cơ sở dữ liệu, phải không?

Bạn nói đúng. Điều tương tự được quy định trong phương ngữ đang được sử dụng trong các kết nối DB.

Đối với bất cứ điều gì tôi đã tìm kiếm thông tin này được đóng gói bên trong phương ngữ trình điều khiển cho DB mà bạn sử dụng và cùng phải chứa ánh xạ java types -> db types.

Here bạn có thể thấy ánh xạ trong Constructor.

0

Xem lớp Dialect và triển khai chúng.

Chúc mừng,

0

Đối với mỗi DBMS hibernate duy trì phương ngữ. có sẵn trong hibernateX.jar.

Các vấn đề liên quan