无法在JDO中删除照片

时间:2011-06-23 23:09:07

标签: java google-app-engine persistence blob jdo

我很难做到这一点。我已经使用JDO为谷歌应用引擎做了一个数据库,允许注册用户上传照片。但现在我正在尝试删除相同的照片,我只是不能这样做。

这是我在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”类不可持久化。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏),或者找不到类的元数据/注释。“不能持久化这意味着它没有得到增强,或者文件的增强版本不在CLASSPATH中(或者被未增强版本隐藏),或者找不到类的元数据。“

无法真正理解为什么会这样。有人想过这个吗?

1 个答案:

答案 0 :(得分:2)

不知道你在那里尝试的是什么。只做

会更有意义
utilAutenticado.setPhoto(null);

当“utilAutenticado”是一个托管对象(即刚从PersistenceManager获得)时。任何体面的JDO书都会表明