Google App Engine ClassNotPersistenceCapableException

我有以下课程:

import javax.jdo.annotations.IdGeneratorStrategy; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; import com.google.appengine.api.datastore.*; @PersistenceCapable(identityType=IdentityType.APPLICATION) public class PayPal_Message { @PrimaryKey @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private Text content; @Persistent private String time; public PayPal_Message(Text content,String time) { this.content=content; this.time=time; } public Long getId() { return id; } public Text getContent() { return content; } public String getTime() { return time; } public void setContent(Text content) { this.content=content; } public void setTime(String time) { this.time=time; } } 

它曾经在一个包中,并且工作正常,现在我将所有类放在默认包中,这导致了我的错误:

org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类“类”PayPal_Message“不可持久化。这意味着它要么没有被增强,要么文件的增强版本不在CLASSPATH中(或被隐藏未加强的版本),或找不到该类的元数据/注释。“ 是不可持续的。 这意味着它要么没有增强,要么文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏),或者找不到类的元数据。 NestedThrowables:org.datanucleus.exceptions.ClassNotPersistableException:类“PayPal_Message”不可持久化。 这意味着它要么没有被增强,要么文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏),或者找不到类的元数据/注释。

我该怎么做才能解决这个问题?

说明:默认包中的类不可见/可由包内的类导入。

请尝试以下示例:

 public class Entity {} 

(因此没有包装!)和

 package persistence; public class EntityManager { public static void main(String... args) { Entity entity = new Entity(); } } 

它有用吗? 没有? 你怎么会导入它? 这就是幕后发生的问题!

我有时会因为没有明显的原因而得到这些例外。

在持久化类中的某处添加空间并重建已经为我修复了它。 不知道它为什么会发生或为什么重建会修复它,但至少值得一试。

我最终将它们放回包中,现在工作正常。