Kịch bản nào tốt nhất khi sử dụng chú thích DiscriminatorValue trong chế độ ngủ đông?Khi nào sử dụng chú thích DiscriminatorValue trong hibernate
Trả lời
Những 2 liên kết giúp tôi hiểu khái niệm thừa kế nhất:
http://docs.oracle.com/javaee/6/tutorial/doc/bnbqn.html
http://www.javaworld.com/javaworld/jw-01-2008/jw-01-jpa1.html?page=6
Để hiểu phân biệt, trước tiên bạn phải hiểu được chiến lược thừa kế: SINGLE_TABLE, tham gia, TABLE_PER_CLASS.
Phân biệt đối xử thường được sử dụng trong kế thừa SINGLE_TABLE vì bạn cần cột để xác định loại bản ghi.
Ví dụ: Bạn có một lớp Học sinh và 2 lớp con: GoodStudent và BadStudent. Cả hai dữ liệu tốt và BadStudent sẽ được lưu trữ trong 1 bảng, nhưng tất nhiên chúng ta cần phải biết loại và đó là khi DiscriminatorColumn sẽ đến. Xem các liên kết tôi đã đăng ở trên.
Khi bạn có kế thừa thực thể sử dụng chiến lược bảng đơn và bạn muốn giá trị của cột phân biệt đối xử không phải là tên của lớp của lớp bê tông thực thể hoặc khi loại cột phân biệt đối xử không phải STRING.
Điều này được giải thích, ví dụ: the javadoc.
Dưới đây là lời giải thích và một ví dụ trên bàn ngủ đông mỗi hệ thống phân cấp lớp, xem xét, chúng tôi đã lớp cơ sở tên là Thanh toán và 2 lớp có nguồn gốc như CreditCard, Kiểm tra
Nếu chúng ta lưu các đối tượng lớp được thừa kế như CreditCard hoặc Kiểm tra sau đó tự động Đối tượng lớp thanh toán cũng sẽ được lưu vào cơ sở dữ liệu, và trong cơ sở dữ liệu tất cả các dữ liệu sẽ được lưu trữ vào một bảng duy nhất, đó là bảng lớp cơ sở cho chắc chắn. Nhưng ở đây chúng ta phải sử dụng thêm một cột phân biệt đối xử trong cơ sở dữ liệu, chỉ để xác định đối tượng lớp dẫn xuất đã được lưu trong bảng cùng với đối tượng lớp cơ sở, nếu chúng ta không sử dụng cột này ngủ đông sẽ ném ngoại lệ
Hãy để tôi giải thích cho bạn một ví dụ. Giả sử bạn có một lớp có tên là Animal và dưới lớp Animal, có nhiều lớp con như Reptile, Bird ... vv.
Và trong cơ sở dữ liệu bạn có bảng gọi ANIMAL
---------------------------
ID||NAME ||TYPE ||
---------------------------
1 ||Crocodile ||REPTILE ||
---------------------------
2 ||Dinosaur ||REPTILE ||
---------------------------
3 ||Lizard ||REPTILE ||
---------------------------
4 ||Owl ||BIRD ||
---------------------------
5 ||parrot ||BIRD ||
---------------------------
đây cột TYPE
được gọi DiscriminatorColumn, bởi vì cột này chứa dữ liệu tách biệt rõ ràng Loài bò sát và chim. Và dữ liệu REPTILE
và BIRD
trong cột TYPE
là DiscriminatorValue.
Vì vậy, trong phần java cấu trúc này sẽ như thế nào:
Animal lớp:
@Getter
@Setter
@Table(name = "ANIMAL")
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING, name = "TYPE")
public class Animal {
@Id
@Column(name = "ID")
private String id;
@Column(name = "NAME")
private String name;
}
lớp Bò sát: lớp
@Entity
@DiscriminatorValue("REPTILE")
public class Reptile extends Animal {
}
Bird:
@Entity
@DiscriminatorValue("BIRD")
public class Bird extends Animal {
}
- 1. @ManyToAny chú thích trong hibernate
- 2. việc sử dụng các chú thích Hibernate @LazyCollection
- 3. Validate Mobile Number sử dụng Hibernate chú thích
- 4. Cách sử dụng chú thích xác thực Hibernate với enums?
- 5. Thừa kế trong Chú thích Hibernate?
- 6. @ModelAttribute chú thích, khi sử dụng nó?
- 7. Chú thích Hibernate hoặc cấu hình XML
- 8. hibernate bằng cách sử dụng chú thích hoặc sử dụng các tệp cấu hình ngủ đông
- 9. Cách sử dụng Hibernate @ Bất kỳ chú thích nào có liên quan?
- 10. Hibernate Validator: Sử dụng if - else loại logic trong chú thích
- 11. JPA 2,0 @OrderColumn chú thích trong Hibernate 3,5
- 12. JPA: cách sử dụng chú thích @ElementCollection?
- 13. Sử dụng chú thích Spring để tự động áp dụng Interceptor Hibernate?
- 14. Text Field sử dụng Hibernate Chú
- 15. Mocking Spring MVC BindingResult khi sử dụng chú thích
- 16. Hibernate - sự khác biệt giữa chú thích và chú thích commons?
- 17. Xác nhận hợp lệ mùa xuân và xác thực Hibernate bằng cách sử dụng chú thích
- 18. Cách sử dụng chú thích Hibernate @ManyToOne và @OneToMany cho các liên kết
- 19. Chèn chú thích tùy chỉnh trong 'trường' java sử dụng plugin chú thích + JAXB (khi xsd -> java)
- 20. Chú thích JPA trong Android
- 21. @xmlSchema chú thích sử dụng với jaxb
- 22. truy vấn tên không biết - Chú thích & Hibernate
- 23. Hibernate sử dụng JPA (thực thể được chú thích) và liquibase
- 24. Quan hệ giữa JPA và Hibernate chú thích
- 25. Tạo chỉ mục trên DB bằng Hibernate @Index Chú thích
- 26. C# - Sử dụng chú thích tùy chỉnh?
- 27. java 7 lỗi nâng cấp và lỗi chú thích hibernate
- 28. Lập bản đồ các loại enum với Chú thích Hibernate
- 29. Hibernate - Cách đặt sql-type bằng chú thích?
- 30. lấy thông tin chú thích khi chạy
Có bạn cố gắng đi qua tài liệu, ca n tham khảo http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e1168 & http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html /inheritance.html#inheritance-tablepersubclass-discriminator –