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(); } }
它有用吗? 没有? 你怎么会导入它? 这就是幕后发生的问题!
我有时会因为没有明显的原因而得到这些例外。
在持久化类中的某处添加空间并重建已经为我修复了它。 不知道它为什么会发生或为什么重建会修复它,但至少值得一试。
我最终将它们放回包中,现在工作正常。