Playframework 我无法在类之间创建JPA关系

Playframework 我无法在类之间创建JPA关系,playframework,playframework-2.0,Playframework,Playframework 2.0,嗨,我对play framework和JPA很陌生。我正在创建web应用程序,我需要在应用程序的模型端有两个类。当我运行应用程序时,会出现以下错误:非法尝试将非集合映射为@OneToMany、@ManyToMany或@CollectionFelments: package models; import java.util.ArrayList; import javax.persistence.CascadeType; import javax.persistence.Column; impor

嗨,我对play framework和JPA很陌生。我正在创建web应用程序,我需要在应用程序的模型端有两个类。当我运行应用程序时,会出现以下错误:非法尝试将非集合映射为@OneToMany、@ManyToMany或@CollectionFelments:

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>();
}
}
封装模型;
导入java.util.ArrayList;
导入javax.persistence.CascadeType;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.manytone;
导入play.db.jpa.Model;
@实体
公共类子类别扩展模型{
@列(唯一=真)
公共字符串子名称;
@许多酮
公共类;
公共子类别(字符串子类别名称、类别){
this.subCatName=subCatName;
这个。类别=类别;
}
}
包装模型;
导入java.util.ArrayList;
导入javax.persistence.CascadeType;
导入javax.persistence.Column;
导入javax.persistence.Entity;
导入javax.persistence.OneToMany;
导入org.hibernate.engine.Cascade;
导入play.db.jpa.Model;
@实体
公共类类别扩展模型{
@列(唯一=真)
公共字符串catName;
@OneToMany(mappedBy=“category”,cascade=CascadeType.ALL)
公共数组列表allSubCat;
公共类别(字符串catName){
this.catName=catName;
allSubCat=newarraylist();
}
}

ArrayList是接口列表的实现

您必须将字段定义为类型列表,因为在后台hibernate(play用于连接db的orm)不使用ArrayList实现,而是使用它自己的自定义实现