2

良い一日!エンティティ モデルを保存しようとしていますが、常にエラーが発生します

Error inserting bean [class models.CategoryEntity] with unidirectional relationship. For inserts you must use cascade save on the master bean [class models.CategoryEntity].]

ここで私のクラス

@Entity
public class CategoryEntity extends Model {
    @Id
    private String categoryId;

    private String Name;
    private Integer level;

    @OneToMany(targetEntity = CategoryEntity.class, cascade = CascadeType.ALL)
    private List<CategoryEntity> categories;
//GETERS SETRES
}

ヘッダーのカテゴリを保存しようとしましたが、エラーは同じです

4

2 に答える 2

6

質問を正しく理解していて、各 CategoryEntity に他の CategoryEntity のリストが含まれていることが必要な場合は、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 が複数の CategoryLists の一部になることができることです。各 CategoryList には、CategoryEntities のリストが含まれています。

this_category_list を初期化し、CategoryEntities をその category_list フィールドに追加する必要があります。

于 2013-04-01T12:08:01.087 に答える
-3

あなたのモデルは意味がありません。クラス自体をクラス属性として持っているのはなぜですか?

リストは同じクラスであってはなりません

于 2013-03-24T23:51:52.680 に答える