Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法删除JDO中的照片_Java_Google App Engine_Persistence_Blob_Jdo - Fatal编程技术网

Java 无法删除JDO中的照片

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

我很难做到这一点。我用JDO为google应用程序引擎做了一个db,允许注册用户上传照片。但现在我正试图删除同一张照片,我就是做不到

这是我在db的班级

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来更新字段。