0

こんにちは私はPlayFrameworkとJPAについてかなり新しいです。Webアプリケーションを作成していますが、アプリケーションのモデル側に2つのクラスが必要です。アプリを実行すると、次のエラーが発生します。非コレクションを@ OneToMany、@ ManyToMany、または@CollectionOfElementsとしてマップしようとすると不正になります。

package models;
import java.util.ArrayList;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
import play.db.jpa.Model;

   @Entity

public class SubCategory extends Model{
@Column(unique = true)
public String subCatName;

@ManyToOne
public Category category;

public SubCategory(String subCatName,Category category){
    this.subCatName=subCatName;
    this.category=category;
}
}

   package models;

 import java.util.ArrayList;

 import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.OneToMany;
 import org.hibernate.engine.Cascade;
 import play.db.jpa.Model;

 @Entity

  public class Category extends Model{

@Column(unique = true)
public String catName;

@OneToMany(mappedBy="category", cascade=CascadeType.ALL)
public ArrayList<SubCategory> allSubCat;

public Category(String catName){
    this.catName=catName;
    allSubCat=new ArrayList<SubCategory>();
}
}
4

1 に答える 1

1

ArrayListは、インターフェイスListの実装です。

内部では休止状態(playがdbに接続するために使用するorm)ではArrayList実装を使用せず、独自のカスタム実装を使用するため、フィールドをタイプListとして定義する必要があります。

于 2012-12-10T06:56:11.347 に答える