Не могу удалить фото в JDO - PullRequest
0 голосов
/ 24 июня 2011

Мне трудно это делать. Я сделал БД с JDO для Google App Engine, который позволяет зарегистрированным пользователям загружать фотографии. Но сейчас я пытаюсь удалить ту же самую фотографию, и я просто не могу это сделать.

Это мой класс в БД.

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 Ответ

2 голосов
/ 24 июня 2011

Понятия не имею, что ты там пытаешься делать.Было бы более разумно просто сделать

utilAutenticado.setPhoto(null);

, когда «utilAutenticado» является управляемым объектом (т.е. только что полученным из PersistenceManager).Любая приличная книга JDO показала бы, что

...