2010-04-02 44 views
35

Tôi có một kiểu enum trên mô hình Java mà tôi muốn ánh xạ tới một bảng trên cơ sở dữ liệu. Tôi đang làm việc với chú thích Hibernate và tôi không biết làm thế nào để làm điều đó. Vì câu trả lời tôi tìm kiếm khá cũ, tôi tự hỏi cách nào là tốt nhất?Lập bản đồ các loại enum với Chú thích Hibernate

Cảm ơn trước

Trả lời

62

Bạn có cần cái gì khác hơn so với @Enumerated chú thích? Ví dụ, enum sau:

public enum MyEnum { 
    VALUE1, VALUE2; 
} 

thể được sử dụng và chú thích như thế này:

private MyEnum myEnum; 
@Column(name="myenum") 
@Enumerated(EnumType.ORDINAL) 
public MyEnum getMyEnum() { 
    return myEnum 
} 

Bạn có thể chỉ định cách enum nên được tiếp tục tồn tại cơ sở dữ liệu với thuộc tính EnumType enum của @Enumerated chú thích . EnumType.ORDINAL chỉ định rằng enum sẽ được tiếp tục tồn tại dưới dạng giá trị số nguyên. Ở đây, myEnum thiết lập để VALUE1 sẽ được tiếp tục tồn là 0, VALUE2 như 1, vv

Cách khác là sử dụng EnumType.STRING để xác định rằng enum sẽ được tiếp tục tồn bằng cách sử dụng tên của giá trị enum rằng lĩnh vực này được thiết lập để. Vì vậy, được áp dụng cho ví dụ trước, hãy đặt trường myEnum thành MyEnum.VALUE1 sẽ tồn tại dưới dạng VALUE1, v.v.

+0

Cảm ơn! Tôi nghĩ đó là chính xác những gì tôi đang tìm kiếm. Tôi sẽ thử nó – Thiago

+0

Tôi có thể nhập gì vào trường @Id của lớp enum? – Thiago

+1

@Thiago gì? Enum của bạn thường không phải là một thực thể, nó không có trường '@ Id'. Bạn có thể cập nhật câu hỏi của mình để hiển thị những gì bạn đang làm không? –

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