VRaptor x Campos da tabela pai no formulário

5 respostas
M

Pessoal, tenho o relacionamento na classe Usuario:

@OneToOne(cascade = CascadeType.ALL)
@PrimaryKeyJoinColumn
private Entidade entidade;

Feito o relacionamento, pra pegar o nome da entidade e mostar no formulário não seria fazer apenas :

<input type="text" name="usuario.entidade.nome"	 	value="${usuario.entidade.nome }"	size="37" readonly="readonly"/>

Ou, teria que fazer algum método buscando esta entidade ?? se for, como seria este método ?

Valew.

5 Respostas

sergiolopes

exatamente isso!

só colocar um getEntidade() na classe e a Expression Language acha (na verdade nao eh o vraptor que faz isso, mas a EL).

e pro vraptor pegar os dados e popular seu bean, basta colocar um setter.

M

sergiousp:
exatamente isso!

só colocar um getEntidade() na classe e a Expression Language acha (na verdade nao eh o vraptor que faz isso, mas a EL).

e pro vraptor pegar os dados e popular seu bean, basta colocar um setter.

Então, eu tenho o get e set da Entidade, e mesmo assim tô com problema, é que não está trazendo as informações da tabela Entidade no formulário.

Veja o sql gerado:

select
        usuario0_.id_usuario as id1_0_1_,
        usuario0_.nome as nome0_1_,
        usuario0_.username as username0_1_,
        usuario0_.senha as senha0_1_,
        usuario0_.email as email0_1_,
        entidade1_.id_entidade as id1_1_0_,
        entidade1_.nome as nome1_0_,
        entidade1_.fantasia as fantasia1_0_ 
    from
        ps_usuario usuario0_,
        ps_entidade entidade1_ 
    where
        usuario0_.id_usuario=entidade1_.id_entidade(+) 
        and usuario0_.id_usuario=?

O que pode ser pra resolver isso ?

Valew.

M

Olha que percebi no sql devolvido pelo hibernate:

where
         usuario0_.id_usuario=entidade1_.id_entidade(+) 
         and usuario0_.id_usuario=?

Veja, no WHERE está comparando id_usuario com id_entidade!!!
O correto não seria:

where
         usuario0_.id_entidade=entidade1_.id_entidade(+) 
         and usuario0_.id_usuario=?

Pq será que tá fazendo isso ??

Valew.

plentz

Coloque suas classes Usuario e Entidade com os mapeamentos.

M

Galera, funcionou !!!

Deixei da seguinte forma:

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id_entidade", referencedColumnName = "id_entidade")
private Entidade entidade;

Obrigado a todos.

Criado 17 de maio de 2007
Ultima resposta 21 de mai. de 2007
Respostas 5
Participantes 3