Problemas ao carregar uma consulta usando JPA

2 respostas
R

Bom dia

Estou com problemas para fazer uma consulta usando JPA, eu gostaria de selecionar todos os telefones de um login e para isto montei a seguinte query:

Eu tenho basicamente 2 tabelas, uma de login e outra de telefones, sendo que a tabela de Telefone contem uma chave estrangeira(fkLogin) para a tabela de cliente.
O problema que ocorre é que a consulta acima repete 3 vezes os mesmos registros, ou seja, se no banco de dados o Login possui 3 telefones diferentes, a consulta acima retorna 9 telefones sendo que ele repete 3 vezes cada registro.

Alguém pode me ajudar a esclarecer como fazer esta consulta corretamente?
Desde já obrigado

2 Respostas

daviddjp

Vc tem quantas tabelas no total? tem um modelo ai?
Por exemplo, a tabela login é a mesma tabela cliente?

R

daviddjp:
Vc tem quantas tabelas no total? tem um modelo ai?
Por exemplo, a tabela login é a mesma tabela cliente?

Sim… a tabela login é a cliente, segue estrutura abaixo:

public class Login implements Serializable {
    @Id
    @Basic(optional = false)
    @Column(name = "pk")
    private Integer pk;

    @Basic(optional = false)
    @Column(name = "name")
    private String name;

    @Basic(optional = false)
    @Column(name = "password")
    private String password;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "fkLogin")
    private Collection<ClientPhone> clientPhoneCollection;
public class ClientPhone implements Serializable {

    @Id
    @Basic(optional = false)
    @Column(name = "pk")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator="seq_client_phone")
    @SequenceGenerator(name="seq_client_phone", sequenceName="seq_client_phone", allocationSize=1)
    private Long pk;

    @Basic(optional = false)
    @Column(name = "name")
    private String name;

    @Basic(optional = false)
    @Column(name = "phone")
    private String phone;

    @JoinColumn(name = "fk_login", referencedColumnName = "pk")
    @ManyToOne(optional = false)
    private Login fkLogin;
Criado 4 de agosto de 2009
Ultima resposta 4 de ago. de 2009
Respostas 2
Participantes 2