Tôi đang sử dụng chú thích ngủ đông. Cách thêm phương thức vào đối tượng POJO? Ví dụ tôi có phương thức "getChildNodes", được liên kết với cơ sở dữ liệu, nhưng tôi cũng muốn thêm phương thức đệ quy "getAllChildNodes". Tôi nhận được "org.hibernate.PropertyNotFoundException: Không thể tìm thấy một setter cho tiến trình bất động sản trong lớp" ngoại lệ khi tôi làm điều đó.Chú thích Java, Hibernate, Cách thêm phương thức vào đối tượng POJO?
Trả lời
Nếu tôi hiểu nó là "làm thế nào để thêm một phương pháp mà không liên quan đến sự kiên trì", sau đó bạn cần phải sử dụng @Transient
chú thích vào phương pháp getAllChildNodes()
Tôi đang bối rối. Không thêm chức năng bổ sung như getAllChildNodes() hoặc publish() chẳng hạn, làm cho nó không phải là POJO nữa? Và do đó vi phạm một nguyên tắc thiết kế của các đối tượng ngủ đông phải là POJO và do đó "xấu"? Nhưng tại sao nó lại tệ? Tôi muốn làm điều này nhưng tôi không chắc chắn nếu nó là đúng cách. – pete
Mở tệp .java và viết phương thức có tên getAllChildNodes()
.
Hibernate không viết mã cho bạn, nó ánh xạ các trường trong cơ sở dữ liệu của bạn vào mã của bạn. Đó là tất cả. Nếu bạn muốn có thêm logic trong miền của bạn/mô hình lớp học bên cạnh các getters bình thường và setters cho tài sản của bạn, bạn sẽ phải thêm chúng mình.
Có hai cách xác định cấu trúc của tổ chức của bạn .
- sử dụng chú thích trên các biến thể hiện của thực thể của bạn hoặc
- sử dụng chú thích về các phương pháp getter của tổ chức của bạn
Khi sử dụng các chú thích về phương pháp getter, Hibernate giả định rằng mỗi getXxx (và isXxx đối với các kiểu boolean) đại diện cho định nghĩa của một thuộc tính liên tục. Và điều này giữ ngay cả khi trình thu thập đặc biệt đó không chứa bất kỳ chú thích nào, như trong trường hợp của bạn.
Hibernate cũng hy vọng sẽ tìm thấy phương thức setter phù hợp cho từng thuộc tính liên tục. Và trong trường hợp của bạn đó là những gì còn thiếu và gây ra ngoại lệ.
Bạn có thể giải quyết vấn đề này bằng cách khai báo trình thu thập tùy chỉnh của mình dưới dạng @Transient
cho biết trình khởi động này không đại diện cho thuộc tính liên tục. Một cách khác là chuyển đổi thực thể để sử dụng chú thích trên các biến cá thể. Sau này sẽ là sự lựa chọn cá nhân của tôi.
- 1. Cách tốt nhất để thêm chú thích vào các phương thức kế thừa
- 2. Thêm phương thức vào một đối tượng được sao chép
- 3. @AspectJ Lời khuyên chú thích cấp lớp với chú thích làm đối số phương thức
- 4. Thêm chú thích vào một phương trình trong LaTeX
- 5. Thêm chú thích Java tại thời gian chạy
- 6. Xem chú thích java trên phương pháp
- 7. Bootstrap - Thêm chú thích vào đúng
- 8. Thêm chú thích vào ô scatter3d
- 9. Java - Sử dụng chú thích và phương pháp đánh chặn?
- 10. Phương thức chuyển đối tượng vào mảng_map()
- 11. Thêm Chú thích vào Apache Fop
- 12. @ManyToAny chú thích trong hibernate
- 13. Hibernate/JPA - chú thích các phương thức đậu so với các trường
- 14. Khám phá lớp của phương thức chú giải trong Bộ xử lý chú thích cho java
- 15. Thừa kế trong Chú thích Hibernate?
- 16. Thêm chú thích vào ô lôgô ggplot2
- 17. Cách tìm chú thích trong đối tượng PHP5?
- 18. java 7 lỗi nâng cấp và lỗi chú thích hibernate
- 19. Java chú thích
- 20. Cách thêm chú thích tùy chỉnh vào Spring MVC?
- 21. Java xử lý 6 chú thích - nhận được một lớp từ chú thích
- 22. Thêm lớp chú thích trong Hibernate bằng cách thêm tất cả các lớp trong một số gói. JAVA
- 23. Thêm/sửa đổi chú thích trong một dự án java
- 24. xử lý chú thích bên trong phần thân phương thức
- 25. cách thêm văn bản chú thích vào biểu đồ Highcharts?
- 26. Hibernate: Đối tượng dữ liệu có tên bảng động bằng chú thích
- 27. Thêm chú thích vào bản đồ quá chậm - iOS
- 28. Spring AOP - pointcut cho mọi phương thức có chú thích
- 29. Java chú thích cho gói một phương pháp
- 30. JPA POJO làm đối tượng dữ liệu
hiển thị mã của bạn. – Bozho