我正在为我的应用程序使用 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);
}