2009-09-01 26 views
8

Sử dụng chế độ ngủ đông, làm thế nào tôi có thể duy trì một lớp học với trường List<String>?Trường bộ sưu tập kéo dài với hibernate

Hãy xem xét các lớp thực thể sau:

@Entity 
public class Blog { 
    private Long id; 
    private List<String> list; 

    @Id 
    @GeneratedValue 
    public Long getId() { return id; } 
    public void setId(Long id) { this.id = id; } 

    public List<String> getList() { return list; } 
    public void setList(List<String> list) { this.list = list; } 
} 

Tuy nhiên, khi tôi cố gắng để tiết kiệm nó, tôi nhận được lỗi sau:

[INFO] An exception occured while executing the Java class. null 

Could not determine type for: java.util.List, at table: Blog, for columns: [org.hibernate.mapping.Column(list)] 

Tôi đã cố gắng thêm '@CollectionOfElements' để getList(), nhưng sau đó chỉ có id được lưu vào thư viện. Không có cột tương ứng nào được tạo cho danh sách.

Lưu ý: Tôi chỉ cố gắng Hibernate, vì vậy tôi có thể sử dụng liên kết tài liệu mà chúng tôi sẽ giúp tôi hiểu việc quản lý mối quan hệ bộ sưu tập trong Hibernate

Trả lời

7

Hãy xem This. Có lẽ nó là giúp đỡ.

Bạn đã áp dụng @CollectionOfElements như sau?

@org.hibernate.annotations.CollectionOfElements(
targetElement = java.lang.String.class 

)

+0

Cảm ơn! Bảng mới được tạo để lưu ánh xạ – notnoop

0

Có một cái nhìn tại Hibernate Annotations Documentation about Collections về cơ bản bạn đã nói với các danh sách trong những gì liên quan đến nó.

@OneToMany(mappedBy="blog") 
public List<String> getList() { return list; } 

Sau đó, nó sẽ hoạt động.

+0

Tôi sẽ gặp phải lỗi sau: '@OneToOne hoặc @ManyToOne trên uk.co.pookey.hibernate.model.Blog.list tham chiếu đến một thực thể không xác định: java.util.List – notnoop

+0

Điều đó sẽ hoạt động. Bạn đã nhập chú thích Hibernate hoặc JPA chưa? – Daff

+0

Chú thích JPA javax.persistence đã nhập – notnoop

0

Sử dụng một đối tượng Serializable dường như làm việc tốt hơn. Thay đổi tài sản list thành ArrayList<String> dường như giải quyết được sự cố.

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