Tôi đồng ý với @Timo. Thông tin chi tiết khác mà tôi sẽ thêm / mở rộng là ORM có ngữ nghĩa khác với truy cập sql thuần túy vào dữ liệu của bạn.
Mục đích của ORM là loại bỏ thực tế rằng dữ liệu của bạn nằm trong DB càng nhiều càng tốt. Khi bạn sử dụng ORM đúng cách, tất cả các hoạt động liên tục được xử lý trong một lớp mỏng (hy vọng). Các đối tượng mô hình của bạn sẽ có ít hoặc không có mã lâu dài; thực tế là bạn đang sử dụng ORM sẽ ẩn đối với mô hình của bạn.
Do đó, ORM rất giỏi trong việc làm cho cuộc sống của bạn trở nên dễ dàng đối với một số loại hoạt động nhất định, cụ thể là các hoạt động CRUD đơn giản. Bạn có thể tải các đối tượng mô hình của mình, trình bày, cập nhật, xóa chúng khá dễ dàng. Nó làm cho cuộc sống của bạn dễ dàng hơn vì khi bạn truy cập vào dữ liệu của mình, bạn lấy lại các đối tượng mô hình, trên đó bạn có thể viết logic nghiệp vụ. Nếu bạn sử dụng JDBC, bạn sẽ phải 'hydrate hóa' các cá thể đối tượng của mình khỏi dữ liệu, điều này có thể phức tạp và dễ xảy ra lỗi.
ORM không phải lúc nào cũng là lựa chọn tốt nhất. JPA là một công cụ cho một công việc, nếu công cụ đó không đủ cho công việc, bạn sẽ muốn tìm một công cụ tốt hơn. Ví dụ, tôi đã có một tình huống trong đó tôi phải sao chép toàn bộ đồ thị đối tượng và lưu một bản sao mới của các đối tượng đó. Nếu tôi đã sử dụng ORM (như tôi đã cố gắng làm), tôi phải tải tất cả các đối tượng ra khỏi DB, sau đó sao chép chúng, sau đó lưu các đối tượng mới. Tôi đã đi quá lâu.
Giải pháp tốt hơn chỉ đơn giản là sử dụng các hoạt động dựa trên jdbc và lệnh gọi sql 'chèn qua select' để tạo các hàng mới. Nó nhanh chóng, mã đơn giản hơn.
Một điều khác cần xem xét là bạn cảm thấy thoải mái với JDBC và có thời hạn, bạn không cần phải nhảy vào nhóm ORM. Các lớp Spring JdbcTemplate cực kỳ mạnh mẽ và hữu ích. Đôi khi công cụ tốt nhất cho công việc là công cụ bạn biết. Bạn nên tự làm quen với ORM, nhưng không nhất thiết đối với một dự án có kỳ vọng cao. Có rất nhiều thứ để học và nó không hề nhỏ - thực sự là bạn đang giao dịch một bộ phức tạp này với một bộ phức tạp khác khi lựa chọn sử dụng jdbc vs orm.