2013-07-12 23 views
24

Khi cố gắng sử dụng chú thích @Index từ javax.persistence, Eclipse cung cấp cho tôi lỗi này.Chú thích @Index không được phép cho vị trí này

Tôi đang sử dụng nó ngay trước một trường java.util.Date, bên trong một lớp được chú thích với @Entity.

Trước đó, tôi đã sử dụng org.hibernate.annotations.Index ở cùng một vị trí và điều đó là tốt.

Vấn đề bắt đầu sau khi tôi đã nâng cấp hibernate-core từ 4.1.9.Final-4.3.0.Beta3hibernate-commons-chú thích s từ 4.0.1-4.0.2. Nó cho biết @Index không còn được dùng nữa và đề xuất số javax.persistence.

Tất cả tài liệu và ví dụ tôi đã tìm thấy đặt @Index trước thành viên của lớp học. Tôi đang thiếu gì?

Trả lời

36

Chú thích JPA Index chỉ có thể được sử dụng như một phần của một chú thích như @Table, @SecondaryTable vv (xem See Also phần trong javadoc):

@Table(indexes = { @Index(...) }) 
0

Nếu bạn sử dụng Eclipselink bạn có thể thêm này nhập khẩu để lớp học của bạn:

import org.eclipse.persistence.annotations.Index; 

Sau đó thêm bạn @Index đến lĩnh vực của bạn như thế này:

public class FooClass { 
    @Index 
    int field1; 
} 

hoặc

@Index(columnNames = {"field1", "field2"}) 
public class FooClass {  
    int field1; 
    int field2; 
} 
+1

Tôi nghĩ câu hỏi là về JPA 2.1 @Index chú thích, không phải là một độc quyền. – Piohen

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