GAEJとJDOを使用してデータを保存する際に問題が発生しました。これは私が取り組んでいるものです:
クラスUsuari.java:
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
@Persistent
private String email;
@Persistent
private String rol="";
class DBUtils.java:削除操作を行う2つの方法を試しました。
// This method removes a record from the database using its unique Key
public static boolean eliminar(Key k) throws Exception {
PersistenceManager pm = PMF.get().getPersistenceManager();
String kind;
Long id;
kind = k.getKind();
id = k.getId();
try {
if (k.getKind().equals("Usuari")) {
Usuari u = (Usuari)pm.getObjectById(k);
pm.deletePersistent(u);
_log.log(Level.INFO, "Deleted an entity->kind: " + kind + " id: " + id);
}
return true;
} catch (Exception e) {
_log.log(Level.SEVERE, "Unable to delete an entity->kind: " + kind + " id: " + id);
System.err.println(e.getMessage());
throw e;
}
finally {
pm.close();
}
}
// This method removes a record from the database using its unique Key - too
public static void eliminar2(Key k) throws Exception {
PersistenceManager pm = PMF.get().getPersistenceManager();
javax.jdo.Transaction tx = pm.currentTransaction();
try
{
tx.begin();
if (k.getKind().equals("Usuari")) {
Usuari u = (Usuari) pm.getObjectById(k);
pm.deletePersistent(u);
}
tx.commit();
}
catch (Exception e)
{
if (tx.isActive())
{
tx.rollback();
}
throw e;
}
}
一部のクラス「Usuari」の新しいインスタンスを作成することはできますが、削除することはできません。「eliminar」または「eliminar2」メソッドを呼び出すたびに、フェッチしようとした結果、「そのようなオブジェクトはありません」というメッセージが表示されます。手動で確認したところ、オブジェクトがIDとKINDとともに管理パネルに存在することがわかりました。そのため、何が間違っているのかわかりません。
どんな助けでも大歓迎です。