Problema com hibernate could not resolve property

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.

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

1 curtida

[quote=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[/quote]
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!!!

[quote=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[/quote]
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
}

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

Lá explica melhor a questão de chaves.

A ta, obrigador cara. Vou dar uma olhada!

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.

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?

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?[/quote]Algo do tipo:select p from Person p left join fetch p.dogs where p.id = 1

Obrigado cara!

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

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

Obrigado!