2009-05-28 62 views
6
@Entity 
public class TestClass implements Serializable{ 
    private Integer id; 
    private Set<String> mySet; 

    @Id 
    @GeneratedValue 
    public Integer getId() { 
     return id; 
    } 
    @OneToMany(cascade={CascadeType.ALL}) 
    public Set<String> getMySet() { 
     return mySet; 
    } 
} 

Tôi gặp lỗi sau.Làm cách nào để ánh xạ một tập hợp các đối tượng chuỗi bằng cách sử dụng chú thích JPA?

Caused by: org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: TestClass.mySet[java.lang.String] 

hoặc nếu tôi rời khỏi @OneToMany

org.hibernate.MappingException: Could not determine type for: java.util.Set, at table: test_class, for columns: [org.hibernate.mapping.Column(my_sets)]

+0

Chú thích Hibernate's @CollectionOfElements giải quyết vấn đề cho tôi. Nó đặc biệt ngủ đông, nhưng tôi không có kế hoạch trao đổi việc thực hiện JPA của tôi. – ScArcher2

Trả lời

6

Bạn sẽ tìm thấy một câu trả lời khá tốt here. Các quy tắc cho Danh sách cũng áp dụng cho Bộ.

5

Ooh oh, tôi phải làm điều này.

@CollectionOfElements(targetElement = String.class) 
+0

Đây cũng là những gì tôi phải làm, nhưng nó là hibernate cụ thể. Trong tình huống của tôi thì tốt với tôi. – ScArcher2

+1

@ElementCollection trong JPA2, câu trả lời này là cách tiếp cận tốt hơn. xem http://stackoverflow.com/questions/287201/how-to-persist-a-property-of-type-liststring-in-jpa – pdem

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