如果我理解正確的問題,你想要的是,每個CategoryEntity包含其他CategoryEntities的清單,2種可能的方式浮現在腦海中(雖然他們都沒有使用@OneToMany):
方法1:
您可以創建一個@ManyToMany關係,以及定義@JoinTable而命名的鍵:
@Entity
public class CategoryEntity extends Model {
@Id
private String categoryId;
private String name;
private Integer level;
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable( name = "category_category",
joinColumns = @JoinColumn(name = "source_category_id"),
inverseJoinColumns = @JoinColumn(name = "target_category_id"))
public List<CategoryEntity> category_entity_lists = new ArrayList<CategoryEntity>();
}
方法2:
或者你可以創建一個類的實體名單一個新的實體,並創建一個@ManyToMany關係,如:
@Entity
public class CategoryList extends Model
{
@Id
public Long id;
@ManyToMany
@JoinTable(name="categorylist_category")
public List<CategoryEntity> category_list = new ArrayList<CategoryEntity>();
}
然後在你的模型:
@Entity
public class CategoryEntity extends Model {
@Id
private String categoryId;
private String name;
private Integer level;
@OneToOne
public CategoryList this_category_list;
@ManyToMany(mappedBy="category_list")
public List<CategoryList> in_other_category_lists = new ArrayList<CategoryList>();
}
未測試代碼,但應該做的是每個CategoryEntity可以是幾個CategoryList的一部分。每個CategoryList都包含一個CategoryEntities列表。
您將不得不初始化this_category_list並將CategoryEntities添加到其category_list字段。
@nabiullinas你成功與哪種方法? – myborobudur 2013-06-02 19:48:59