我很难做到这一点。我已经为谷歌应用程序引擎使用 JDO 完成了一个数据库,允许注册用户上传照片。但现在我想删除同一张照片,但我做不到。
这是我在数据库中的类(class)。
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 中(或被未增强版本隐藏),或者找不到该类的元数据。”
无法真正理解为什么会发生这种情况。有人考虑过这个吗?
最佳答案
不知道你在那里尝试什么。这样做更有意义
utilAutenticado.setPhoto(null);
当“utilAutenticado”是托管对象时(即刚刚从 PersistenceManager 获取)。任何像样的 JDO 书籍都会表明这一点
关于java - JDO中无法删除照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6461672/