アプリケーションに 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);
}