Google app engine + twig-persist

0 respostas
eberson_oliveira

Bom dia,

Estou me aventurando num aplicativo que rode no GAE basedo no JSF 2.0, prime-faces e twig-persist...

Tive vários problemas para rodar o JSF (se fosse começar hoje não usaria), mas está rodando até bem.

O meu problema agora é com o Twig ou o datastore (ainda não sei dizer).

Tenho duas classes (vou remover os getters e setters para nao ocupar muito espaço):

import java.io.Serializable;

import org.hibernate.validator.constraints.Length;

import com.google.code.twig.annotation.Id;

public class Size implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@Id
	@Length(min=1,max=4,message="{validation.size.invalidSize}")
	private String		size;
	
	private	String		description;

	public Size() {
		super();
	}

	public Size(String name, String description) {
		this.size = name;
		this.description = description;
	}

}
e
import java.io.Serializable;
import java.util.Collection;

import com.google.code.twig.annotation.Id;

public class SizeGroup implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private Long id;
	
	private String name;
	
	private Collection<Size> sizes;
		
}

Para facilitar meus testes criei classes para povoar minha base de dados:

public class SizeProducer implements Producer {
    @Override
    public void produce() {
        SizeDAO dao = new SizeDAO();
        
        dao.persist(new Size("PP", "Muito pequeno"));
        dao.persist(new Size("P", "Pequeno"));
        dao.persist(new Size("M", "Médio"));
        dao.persist(new Size("G", "Grande"));
        dao.persist(new Size("GG", "Muito grande"));
        dao.persist(new Size("XGG", "Muito maior que grande"));
    }    
}
e
public class SizeGroupProducer implements Producer{

    @Override
    public void produce() {
        SizeDAO sizeDao = new SizeDAO();
        
        List<Size> findAll = sizeDao.findAll();
        int middle = (int) Math.floor(findAll.size() / 2 );
        
        SizeGroup infantil = new SizeGroup();
        infantil.setName("Infantil");
        infantil.setSizes(findAll.subList(0, middle));
        
        SizeGroup adulto = new SizeGroup();
        adulto.setName("Adulto");
        adulto.setSizes(findAll.subList(middle, findAll.size()));
        
        SizeGroupDao dao = new SizeGroupDao();
        dao.persist(infantil);
        dao.persist(adulto);
    }

}

Ao testar no ambiente de desenvolvimento, o primeiro produtor de dados executa normal.. ao executar o segundo ele não encontra todos os itens adicionados pelo primeiro. Ao debugar notei que se ficar inspecionando o findAll várias vezes ele vai carregando mais registros até chegar a quantidade correta. Imaginei que isso fosse um delay para disponibilizar os dados.

Será que é isso mesmo? Se sim, como faço para evitar os problemas que posso ter com esse atraso? Será um problema com o Twig? Não cheguei a testar com o Objectfy (devo fazer isso entre hoje e amanhã) será que terei o mesmo problema?

Alguém pode me ajudar, por favor?

Grato pela atenção,
Éberson

Criado 8 de agosto de 2011
Respostas 0
Participantes 1