0

我正在为我的应用程序使用 JDO 对象。最近,当我将应用程序部署到 Google App Engine 时,我的实体没有以相对类型保存在 Cloud Datastore 数据库中,而是存储在 ah_session 中。如何在 ah_session 中查看我的数据值?我如何将这些数据存储在 Cloud Datastore 中?

这是没有 set 和 get 方法和构造函数的 JDO 类:

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Utente implements Serializable {

@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Long idUtente; 
@Persistent
private String email;
@Persistent
private String nome;
@Persistent
private String cognome;
@Persistent
private String password;
@Persistent
private Boolean attivo;
@Persistent
private String sesso;
@Persistent//(dependent = "true")
private Long idMatrimonio;

这是我创建对象的 utils 类:

public class UtenteUtils implements Serializable {
//private Logger log = Logger.getLogger(this.getClass());

public Utente creaUtente(Utente utente) {
    PersistenceManager pm = PMF.get().getPersistenceManager();
    try {
        utente = pm.makePersistent(utente);     
    } catch (Exception e) {        // TODO: handle exception
        System.out.println(e.getMessage() + "DB-creaUtente");
        //log.finest("crea utente errore");
    }
    finally{
        pm.close();
    }
    return utente;      
  }

  public void eliminaUtente(Long idUtente){
    PersistenceManager pm = PMF.get().getPersistenceManager();
            Query q = pm.newQuery(Utente.class);
    q.setFilter("idUtente == idUtenteParam");
    q.declareParameters("Long idUtenteParam");
    List<Utente> risultato = (List<Utente>) q.execute(idUtente);
    if(!risultato.isEmpty())
      for(Utente u : risultato)
          pm.deletePersistent(u);
      pm.close();
    }

  public Utente cercaUtente(Long idUtente) {
      PersistenceManager pm = PMF.get().getPersistenceManager();
      Utente u = pm.getObjectById(Utente.class, idUtente);
      return u;
  }

  public List<Utente> cercaUtentePerEmail(String mail) {
      List<Utente> utenti = new ArrayList<Utente>();
      PersistenceManager pm = PMF.get().getPersistenceManager();
              Query query = pm.newQuery(Utente.class);
      query.setFilter("email == emailParam");
      query.declareParameters("String emailParam");
      utenti = (List<Utente>) query.execute(mail);
      return utenti;
  }


  public List<Utente> listaUtenti() {
      List<Utente> utenti = new ArrayList<Utente>();
      PersistenceManager pm = PMF.get().getPersistenceManager();
      Query query = pm.newQuery("SELECT FROM it.nozze.cliente.JDO.Utente");
      utenti = (List<Utente>) query.execute();
      return utenti;
  }

这是我使用该对象的类:

@ManagedBean
@SessionScoped
public class Registrazione implements Serializable {
private UtenteUtils utenteUtils;
private Utente sposo;
private Utente sposa;
private MatrimonioUtils matrimonioUtils;
private Matrimonio matrimonio;


public Registrazione() {
    this.sposo = new Utente();
    this.sposa = new Utente();
    this.matrimonio = new Matrimonio();
}

public void creaUtenteSposo() {
    matrimonioUtils = new MatrimonioUtils();
    matrimonio = matrimonioUtils.creaMatrimonio(matrimonio);

    sposo.setSesso("M");
    sposo.setPassword("x");
    sposo.setAttivo(true);
    sposo.setMatrimonio(m.getIdMatrimonio());
    utenteUtils = new UtenteUtils();
    sposo = utenteUtils.creaUtente(sposo);
}
4

0 回答 0