Problema com hibernate could not resolve property

10 respostas
V

Fala pessoal!
Seguinte … estou tendo um erro de “could not resolve property” sempre que carrego a página onde essa propriedade “tbUsuario_id” é utilizada.
Acho que esse problema é porque esse atributo não tem getter e nem setter devido à ele estar dentro da annotation JoinColumn. Como posso contornar esse problema?

Obrigado!

@ManyToOne
@JoinColumn(name = "tbUsuario_id")//
private TbUsuario tbUsuario;

OBS: Tentei fazer da seguinte forma mas não deu certo:

@ManyToOne
@JoinColumn
long tbUsuario_id;
pricate TbUsuario tbUsuario;

Coloquei o tbUsuario_id fora do annotation para poder criar o setter e o getter. Mas desta forma o hibernate não conseguiu mapear a parada.

10 Respostas

H

Cara, o seu problema é que você esta fazendo relacionamento com um atributo e não com um objeto:@ManyToOne @JoinColumn long tbUsuario_id;Na maioria das vezes (todas que eu já vi até hoje) a classe é salva e não um ID.

Aqui tem um exemplo que pode te ajudar: @OneToMany e @ManyToOne Unidirecional e Bidirecional

V

jakefrog:
Cara, o seu problema é que você esta fazendo relacionamento com um atributo e não com um objeto:@ManyToOne @JoinColumn long tbUsuario_id;Na maioria das vezes (todas que eu já vi até hoje) a classe é salva e não um ID.

Aqui tem um exemplo que pode te ajudar: @OneToMany e @ManyToOne Unidirecional e Bidirecional


Grande JakeFrog!!

Vou dar uma olhada cara. Vou começar a pesquisar minha dúvidas nesse site que você passou antes de pesquisar no google rs … dei uma olhada rapida agora e acho que resolverá meu problema. Vou sair do trampo agora, mas quando eu chegar em casa eu testo e digo se funfou.

Obrigado!!!

V

jakefrog:
Cara, o seu problema é que você esta fazendo relacionamento com um atributo e não com um objeto:@ManyToOne @JoinColumn long tbUsuario_id;Na maioria das vezes (todas que eu já vi até hoje) a classe é salva e não um ID.

Aqui tem um exemplo que pode te ajudar: @OneToMany e @ManyToOne Unidirecional e Bidirecional


Iaew jakefrog!!

Cara eu ví o tutorial que você passou, mas ainda perdura uma dúvida =/

Nessa entidade Customer tem um private User user; Que não entendi de onde veio =/ … tipo se vai ser um relacionamento entre a DOGS e a CUSTOMER então pra que esse User? E não achei o código desse User no tutorial para entender melhor.

E na parte no parametro name do JoinColumn está “CUSTOMER_ID”. Essa parte não entendi também. Não deveria estar ai uma primary key da entidade DOGS? =( … to precisando aprender a simplesmente “atrelar” duas tabelas com foreign/primary key. Onde uma tabela poderá conter várias da outra e a outra apenas uma da primeira. Coisa que com sql puro faço de boa, agora com hibernate tá barra em.
Tipo tenho uma entidade CONTATOS e outra USUARIO. Onde USUARIO pode ter vários CONTATOS, e CONTATOS apenas um USUARIO, simples assim. Na tabela CONTATOS terá uma foreign key para USUARIO. E por essa foreign key quero carregar os contatos para diferentes USUARIOS logados no sistema. Ou seja quando o usuário for carregar a lista de contatos o programa irá verificar qual a primary key do USUARIO logado e por essa primary key ele carregará a lista de contatos que terá a primary key de USUARIO como foreign key. Cara, muito obrigado pela a ajuda, e desculpa pelo textão ai, me ajuda por favor!

@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="CUSTOMER_ID")
    private List dogs;
@Entity
@Table(name = "CUSTOMER")
@SequenceGenerator(name = "CUSTOMER_SEQUENCE", sequenceName = "CUSTOMER_SEQUENCE", allocationSize = 1, initialValue = 0)
public class Customer {
 
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CUSTOMER_SEQUENCE")
    private int id;
 
    @Column
    private String name;
 
    @OneToOne(cascade = CascadeType.ALL, optional = true, fetch = FetchType.EAGER, orphanRemoval = true)
    @JoinColumn(name="USER_ID", nullable=true)
    private User user;
 
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="CUSTOMER_ID")
    private List dogs;
 
    //Getters and Setters
}
H

A parte do user está no post anterior. http://uaihebert.com/?p=47

Lá explica melhor a questão de chaves.

V

A ta, obrigador cara. Vou dar uma olhada!

R

O erro de ‘could not resolve property’ provavelmente é pela falta dos getters e setters,quanto ao relacionamento é como o nosso amigo jakefrog falou,é melhor fazer com um objeto do que com um tipo primitivo.

V

Oi Jake!
Cara fiz daquele jeito do seu blog. Me tira só mais uma dúvida por favor!
Tipo assim … as suas entidades CUSTOMER e DOGS estão “atreladas” na CUSTOMER_HAS_DOGS. Até ai blz. Mas e quando você quiser carregar a lista de cachorros do customer de ID 1 por exemplo. Como você faz?

H

Oi Jake!
Cara fiz daquele jeito do seu blog. Me tira só mais uma dúvida por favor!
Tipo assim … as suas entidades CUSTOMER e DOGS estão “atreladas” na CUSTOMER_HAS_DOGS. Até ai blz. Mas e quando você quiser carregar a lista de cachorros do customer de ID 1 por exemplo. Como você faz?Algo do tipo:select p from Person p left join fetch p.dogs where p.id = 1

V

Obrigado cara!

Vou testar agora mesmo, e aviso se der certo!!!

V

Deu certo!
Fiz alguns ajustes para meu cenário mas deu certo!

Obrigado!

Criado 20 de junho de 2012
Ultima resposta 27 de jun. de 2012
Respostas 10
Participantes 3