Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Problema con NamedQuery e Join

    ciao!

    ho una tabella collegata ad un'altra, e questa in pratica la query che dovrei eseguire:

    SELECT * FROM cr_condizioni
    JOIN cr_clienti ON fk_cliente = cliente_codice
    WHERE cliente_codice = CODICE_DEL_CLIENTE

    ho mappato le tabelle e creato una query per tirar fuori i record della prima tabella a seconda del valore della seconda tabella (quindi del campo collegato):

    @NamedQuery(name = "CrCondizioni.findByClienteCodice", query = "SELECT c FROM CrCondizioni c WHERE c.fkCliente.clienteCodice = :clienteCodice"),
    ..............
    @JoinColumn(name = "fk_cliente", referencedColumnName = "cliente_codice")
    @ManyToOne
    private CrClienti fkCliente;

    il problema è che eseguendo questa query mi tira fuori il record relativo al cliente, e non i record della tabella che interrogo.
    sinceramente non riesco a capirne il motivo.
    in teoria questa query esegue una JOIN, e quindi dovrebbe tirari fuori i record della tabella cr_condizioni, e non della tabella cr_clienti.

    qualche idea?

  2. #2
    PS: se metto i tag CODE non mi inserire il post!!
    e non me lo fa modificare.
    c'è qualche problema?

  3. #3
    ok risolto.
    l'errore era nella classe astratta che richiama la NameDquery:
    codice:
    public List<T> findCondizioneClienteCodice(Integer clienteCodice) {
             return  getEntityManager().createNamedQuery("CrCondizioni.findByClienteCodice").setParameter("clienteCodice",  clienteCodice).getResultList();
        }
    richiamavo dalla classe CrClienti e non da CrCondizioni.
    ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.