VRaptor 3 + Objectify - FJ28 [RESOLVIDO]  XML
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Autor Mensagem
MABS
JavaBaby
[Avatar]

Membro desde: 10/04/2011 21:35:04
Mensagens: 90
Offline

Olá!

Estou tentando fazer uma migração da aplicação da Apostila da Caelum FJ28 do hibernate para o Objectify só que infelizmente esta dando um erro.
Segue abaixo os códigos que eu estou utilizando:

Classe Produto:
"formulario.jsp":
Classe ProdutoController:
Obs. Estou deixando o código comentado, pois não acho importante algumas função por enquanto, meu interesse é só realizar o cadastro do produto sem nenhum erro.
Classe ProdutoDao:
Mensagem de Erro:
Realmente não sei o que fazer mais!

Abraço!

This message was edited 1 time. Last update was at 02/06/2011 11:02:42

Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

se vc quer que a classe produto tenha um construtor não padrão, vc precisa usar o vraptor junto com o IOGI...

para isso, coloque esse jar no WEB-INF/lib:
https://github.com/caelum/vraptor/blob/master/vraptor-core/lib/optional/iogi/iogi-0.8.2.jar

e coloque essa configuração no web.xml (ou adicione na já existente)


--
Caelum
www.caelum.com.br

MABS
JavaBaby
[Avatar]

Membro desde: 10/04/2011 21:35:04
Mensagens: 90
Offline

Adicionei o JAR e mudou o erro, eu não estou entende porque esta dando NullPointerException!

Messagem de Erro:


Abraço!
Lucas Cavalcanti
GUJ Hacker
[Avatar]

Membro desde: 08/07/2007 00:08:14
Mensagens: 6396
Offline

o nullpointer tem como raiz o seu produtoDAO:



tenta debugar aí e ver se tem alguma coisa nula sendo passada por aí

--
Caelum
www.caelum.com.br

MABS
JavaBaby
[Avatar]

Membro desde: 10/04/2011 21:35:04
Mensagens: 90
Offline

Na verdade não sei por qual motivo ainda mais os dados do formulário não esta chegando nem na classe Controller!

Assim que eu achar a cagada que eu fiz eu aviso e deixo o tópico como RESOLVIDO!

Que merda!RS*

Obrigado pela ajuda! Lucas.

Abraço!

MABS
JavaBaby
[Avatar]

Membro desde: 10/04/2011 21:35:04
Mensagens: 90
Offline

Olá, Lucas!

Achei o erro, na verdade é bem simples. Quando era realizado o cadastro no Banco de Dados Relaciona (MySQL) não era necessário preencher o campo "ID" da tabela, pois este campo era gerado automaticamente (@GeneratedValue).
Agora eu estou usando um Banco de Dados sem Relacionamento (BigTable), sendo assim, não esta sendo gerado automaticamente o campo "ID".
Mas na verdade eu estava contado que o campo "ID" fosse preenchido automaticamente mas sem ser seqüencial. Tinha esta certeza, pois o Sergio Lopes comentou sobre este fato no seguinte tópico: http://www.guj.com.br/java/241901-vraptor--objectify---google-app-enginegae-resolvido

Agora realmente ficou um interrogação, será que estou fazendo uma cagada, ou realmente não é gerado automaticamente ?

Abraço!
davisnog
JavaEvangelist

Membro desde: 21/05/2007 21:05:18
Mensagens: 438
Localização: Blumenau/SC
Offline

Isso de setar um id para o Objeto é porque você esta usando um long primitivo, altera para o Wrapper Long id que vai funcionar, o objectify verifica se esse id é null, caso seja ele cria um, senão ele deixa como esta, e nesse caso o seu id será sempre zero.

- DAVI NOGUEIRA -
Assim como um pai se compadece de seus filhos, assim o SENHOR se compadece daqueles que o temem. Salmos 103:13

@davisnog
[MSN]
MABS
JavaBaby
[Avatar]

Membro desde: 10/04/2011 21:35:04
Mensagens: 90
Offline

Olá, davisnog!

Valeu mano vou testar aqui e já dou uma resposta!

Abraço!
Sergio Lopes
Moderador
[Avatar]

Membro desde: 17/11/2003 00:22:10
Mensagens: 1368
Localização: São Paulo - SP
Offline

MABS wrote:Agora realmente ficou um interrogação, será que estou fazendo uma cagada, ou realmente não é gerado automaticamente ?


Como o davisnog falou, precisa ser Long wrapper e não primitivo. Se for primitivo ele acha que já tem id (zero) e não gera. Precisa ser um Long e deixar null pro put() gerar.

Na doc do Objectify:

Objectify wrote:
One field must be annotated with javax.persistence.Id. It can be of type Long, long, or String. If you use Long and put() an object with a null id, a value will be generated for you. If you use String or the primitive long type, values will never be autogenerated.


http://code.google.com/p/objectify-appengine/wiki/IntroductionToObjectify#Create_Your_Entity_Classes

Sérgio Lopes - twitter: @sergio_caelum - blog pessoal: sergiolopes.org
Curso Java | Apostilas Java | Arquitetura Java | Curso Rails
MABS
JavaBaby
[Avatar]

Membro desde: 10/04/2011 21:35:04
Mensagens: 90
Offline

Valeu Galera realmente era só o declaração da variável!

Abraço!
 
Índice dos Fóruns » Frameworks e Bibliotecas brasileiros
Ir para:   
Powered by JForum 2.1.8 © JForum Team