2012-04-04 36 views
6

Hôm nay tôi đã cố tạo một ứng dụng bằng Hibernate như ORM. Vì vậy, trong khi tạo ra tôi đã có một nghi ngờ. Cách thực hành tốt nhất để sử dụng, tệp ánh xạ Hibernate (tệp .hbm) hoặc chú thích là gì? Những ưu và khuyết điểm của nó là gì? Xin hãy giúp tôi hiểu.Sự khác biệt giữa tệp ánh xạ Hibernate và chú thích

Trả lời

12
  • không có sự khác biệt về chức năng. Bạn có thể làm (hầu như) những điều tương tự với cả hai phương pháp tiếp cận
  • file xml đã được sử dụng trước khi Java có chú thích (thêm vào trong 1.5), để họ có thể được coi là một cách lỗi thời của bản đồ
  • nó thường được ưa thích sử dụng chú thích JPA chứ không phải là những công cụ cụ thể; nếu sử dụng xml - có một định dạng xml JPA, mà nên được ưa thích để ngủ đông tự nhiên một
+4

Tệp XML không lỗi thời. Có gì mới hơn không nhất thiết phải tốt hơn. – Johanna

+1

"chúng có thể được xem xét". Tôi không khăng khăng như vậy. Tôi cũng lưu ý không có sự khác biệt về chức năng. Nhưng các chú thích thích hợp hơn trong nhiều trường hợp. – Bozho

0

Chú thích được dựa trên nguyên tắc quy ước về cấu hình:

http://en.wikipedia.org/wiki/Convention_over_configuration 

trong khi các file xml chỉ là cấu hình.

Có nhiều cuộc thảo luận về cách sử dụng chú thích và sử dụng cấu hình.

stackoverflow link

Từ quan điểm của tôi, tôi thích các chú thích vì nó là dễ dàng hơn để viết và để duy trì.

+1

Tôi sẽ phải tôn trọng không đồng ý với chú thích dựa trên nguyên tắc quy ước về cấu hình. Chú thích không phải là về các quy ước. Nó chỉ đơn giản là một phương tiện thay thế để cấu hình từ XML. – M7Jacks

4

Một trường hợp sử dụng tốt để sử dụng phương pháp XML là nếu bạn đang lưu giữ các đối tượng đã được tạo bởi một tiện ích khác và do đó không thể được chú thích.

Ngoài ra, tôi sẽ sử dụng chú thích vì nó có xu hướng tự vay để thực hiện rõ ràng hơn và bạn ít có khả năng giới thiệu lỗi do tên thuộc tính sai chính tả.

+0

Cảm ơn bạn đã đề cập đến sự bền bỉ của các đối tượng từ các nguồn bên ngoài, đã không nghĩ về điều đó. –

8

Câu hỏi là hương vị của bạn - cả hai cách có thể làm (chủ yếu) giống nhau, sự khác biệt là cách viết.

Với chú thích bạn có biến/getter thành viên Java và ánh xạ trực tiếp với nhau tại một nơi.

Tệp ánh xạ Xml cung cấp tổng quan tốt hơn về bảng và ánh xạ của bảng.

Theo ý kiến ​​của tôi, tệp ánh xạ xml giúp thiết kế cơ sở dữ liệu và ứng dụng tốt hơn. Các mệnh đề có khuynh hướng ép buộc lớp Java -> ánh xạ -> bảng cơ sở dữ liệu, đó là hướng sai (cơ sở dữ liệu luôn luôn được thiết kế trước - thay đổi bảng cơ sở dữ liệu sau này là rất nhiều công sức. Các lớp Java dễ dàng có thể được thay đổi bất cứ lúc nào).

Nếu có cơ sở dữ liệu khác nhau với cấu trúc khác nhau, ví dụ một cơ sở dữ liệu Oracle và một cơ sở dữ liệu MySQL, có thể có một số khác biệt về tên bảng và kiểu dữ liệu. cho người khác, bạn chỉ cần viết một số tệp ánh xạ mới. Bạn không cần phải thay đổi một dòng mã Java. Điều này là không thể với chú thích.

Tôi thích sử dụng tệp ánh xạ xml. Đó là khẩu vị của tôi.

2

Đây là cách nó nói trong "Hướng dẫn POINT"

"Nếu bạn sẽ làm cho ứng dụng của bạn di động để ứng dụng EJB 3 compliant ORM khác, bạn phải sử dụng chú thích để đại diện cho thông tin bản đồ nhưng vẫn nếu bạn muốn linh hoạt hơn thì bạn nên đi với ánh xạ dựa trên XML "

Đối với tôi, tôi thích tệp cấu hình XML hơn là chú thích. Bởi vì sau đó chúng tôi có thể thực hiện các thay đổi, với những thay đổi mã tối thiểu.

-1

Chú thích được phát triển với ngôn ngữ java và nhà phát triển java dễ học khi so sánh với XML. Và một điểm nữa trong tên bảng thời gian thực và tên cột là cố định 99%, vì vậy không cần phải thay đổi mã java cũng nhưng nếu bạn muốn thay đổi tên bảng và tên cột thường xuyên, bạn sẽ di chuyển với XML cuối cùng là tệp cfg.xml manadatary vì cơ sở dữ liệu có thể thay đổi.

+0

Xin chào, chào mừng bạn đến với StackOverflow. Thật khó để hiểu câu hỏi của bạn, bạn có thể cải thiện nó cho chúng tôi một ví dụ về mã hay một số gợi ý khác không? –

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