Google App中的应用程序身份问题

时间:2011-09-20 10:15:40

标签: java google-app-engine java-ee entity datanucleus

我想使用@Embeddable注释。因此,它建议定义为应用程序标识。我创建了Data Nucleus文档。但它仍然是错误的。

import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Embeddable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity
@Embeddable
public class Category{
     @Id
     @GeneratedValue(strategy=GenerationType.IDENTITY)
     private String id;

     private String name;

     @OneToMany(mappedBy="category",cascade=CascadeType.ALL)
     private List<Product> products;

     public List<Product> getProducts() {
         return products;
     }

    public void setProducts(List<Product> products) {
        this.products = products;
     }

     public Category() {
     }

     public Category(String id,String name){
          this.id=id;
          this.name=name;
     }

     public String getId() {
         return id;
     }

     public void setId(String id) {
         this.id = id;
     }

     public String getName() {
         return name;
     }

     public void setName(String name) {
         this.name = name;
     }
 }

错误是

  

初始化指定的MetaData时遇到错误。有关详细信息,请参阅嵌套异常   SEVERE:已使用1个主键字段指定了类entity.Category,但此类使用非持久标识,应该是应用程序标识。

1 个答案:

答案 0 :(得分:1)

自嵌入类以来,删除@Id(以及@Entity)。