Java 无法删除JDO中的照片
我很难做到这一点。我用JDO为google应用程序引擎做了一个db,允许注册用户上传照片。但现在我正试图删除同一张照片,我就是做不到 这是我在db的班级Java 无法删除JDO中的照片,java,google-app-engine,persistence,blob,jdo,Java,Google App Engine,Persistence,Blob,Jdo,我很难做到这一点。我用JDO为google应用程序引擎做了一个db,允许注册用户上传照片。但现在我正试图删除同一张照片,我就是做不到 这是我在db的班级 public class Autenticacao { @PrimaryKey @Persistent String utilizador; @Persistent String password; @Persistent String cookie; @Persistent String loginIP; @Persisten
public class Autenticacao
{
@PrimaryKey
@Persistent
String utilizador;
@Persistent
String password;
@Persistent
String cookie;
@Persistent
String loginIP;
@Persistent
public Blob photo;
我正试图像这样删除blob对象
public static String novo(Autenticacao utilAutenticado)
{
PersistenceManager pm = PMF.get().getPersistenceManager();
try {
Object e = pm.getObjectById(utilAutenticado.photo);
pm.deletePersistent(e);
} finally {
pm.close();
}
return null;
}
我试过其他方法,但似乎不起作用。我最后一个错误是
类“com.google.appengine.api.datastore.Blob”是不可持久的。这意味着它未被增强,或者文件的增强版本不在类路径中(或者被未增强版本隐藏),或者找不到类的元数据/注释。“不可持久。这意味着它未被增强,或者文件的增强版本不在类路径中(或被未增强版本隐藏),或找不到类的元数据。“
我真的不明白为什么会发生这种情况。有人想过吗?不知道你似乎在尝试什么。这样做更有意义
utilAutenticado.setPhoto(null);
当“utilAutenticado”是一个托管对象(即刚从PersistenceManager获得)时,任何一本像样的JDO书籍都会显示它不起作用。它说Blob(不知道为什么)不能有空指针。我的解决方法(现在它起作用了)是再次调用例程来上传图像。我引用的是JDO标准。如果这不起作用,那么你就向谷歌报告。也许我实现了错误。无论哪种方式,我都尝试了空指针,并得到了错误。但我感谢你的洞察力。在JDO中(以及在任何合理的Java中)您不使用公共字段。您使用setter来更新字段。