Torna indietro   Hardware Upgrade Forum > Software > Programmazione

WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro
Con Midnight, Blizzard tenta il colpaccio: il player housing sbarca finalmente su Azeroth insieme a una Quel'Thalas ricostruita da zero. Tra il dramma della famiglia Ventolesto e il nuovo Prey System, ecco com'è la nuova espansione di World of Warcraft
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato
Nuova frontiera per i robot tagliaerba, con Ecovacs GOAT O1200 LiDAR Pro che riconosce l'ambiente in maniera perfetta, grazie a due sensori LiDAR, e dopo la falciatura può anche rifinire il bordo con il tagliabordi a filo integrato
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere?
Equilibrio e potenza definiscono il Samsung Galaxy S26+, un flagship che sfida la variante Ultra e la fascia alta del mercato con il primo processore mobile a 2nm. Pur mantenendo l'hardware fotografico precedente, lo smartphone brilla per un display QHD+ da 6,7 pollici d'eccellenza, privo però del trattamento antiriflesso dell'Ultra, e per prestazioni molto elevate. Completano il quadro la ricarica wireless a 20W e, soprattutto, un supporto software settennale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 18-01-2011, 18:13   #1
SUPERALEX
Senior Member
 
L'Avatar di SUPERALEX
 
Iscritto dal: May 2006
Città: Vergiate (VA)
Messaggi: 4315
[JAVA EE] PROBLEMA QUERY EJBQL

Ciao ho un problema con una query in ejbql...allora ho un'entità Corso che ha un arraylist di Studente che sono gli iscritti al corso...dato uno studente,devo estarre tutti i corsi nei queli lo studente non è iscritto...io ho fatto così:
Codice:
Query q = manager.createQuery("SELECT c FROM Corso c JOIN c.iscritti i WHERE i<>?1  ");
        q.setParameter(1, s);
dove s è l'entità studente passata...tenete conto che da un'altra parte ho la query x ottenere i corsi nei quali è iscritto ed è identica tranne x il WHERE finale dove c'è = invece che <> e funziona perfettamente...
avevo provato anche con
Codice:
Query q = manager.createQuery("SELECT c FROM Corso c WHERE NOT EXISTS(SELECT c1 FROM Corso c1 JOIN c1.iscritti i WHERE i=?1)  ");
        q.setParameter(1, s);
ma nn va uguale...probabilmente sarà una scemata ma nn ne vengo a capo
__________________
HAF 922-RYZEN 5 3600+NOCTUA U12S-ANTEC HCG 520W-MSI B550 GAMING PLUS-2X8GB HYPERX FURY RGB-SAPPHIRE RX580 NITRO+ 4GB- ADATA XPG SX8200 Pro 512GB + -CRUCIAL M4 64GB+SAMSUNG 860EVO 256GB+840EVO 128GB+MAXTOR 320GB-CM MK750 CHERRY RED+CMSTORM SENTINEL 3+RAZER VESPULA-AOC 24G2U & SAMSUNG 223BWCOMPRAVENDITE MERCATINO OK
SUPERALEX è offline   Rispondi citando il messaggio o parte di esso
Old 19-01-2011, 12:29   #2
SUPERALEX
Senior Member
 
L'Avatar di SUPERALEX
 
Iscritto dal: May 2006
Città: Vergiate (VA)
Messaggi: 4315
nessuno?
__________________
HAF 922-RYZEN 5 3600+NOCTUA U12S-ANTEC HCG 520W-MSI B550 GAMING PLUS-2X8GB HYPERX FURY RGB-SAPPHIRE RX580 NITRO+ 4GB- ADATA XPG SX8200 Pro 512GB + -CRUCIAL M4 64GB+SAMSUNG 860EVO 256GB+840EVO 128GB+MAXTOR 320GB-CM MK750 CHERRY RED+CMSTORM SENTINEL 3+RAZER VESPULA-AOC 24G2U & SAMSUNG 223BWCOMPRAVENDITE MERCATINO OK
SUPERALEX è offline   Rispondi citando il messaggio o parte di esso
Old 21-01-2011, 10:53   #3
javacomelava
Member
 
Iscritto dal: May 2009
Messaggi: 129
EDIT: OPS...Non avevo letto bene la domanda che avevi posto. La risposta che ho dato purtroppo non risponde al tuo questito. La prima cosa che mi viene in mente,evitando sql (la tua query mi sembra esatta tra l'altro), è di:

1. recuperare tutti i corsi disponibili
2. per ogni corso controllare se lo studente è iscritto

Mi rendo conto però che una query sql possa essere piu prestazionale rispetto alle operazioni java su mensionate.

Quote:
Ciao

Ma perchè incasinarsi la vita con ejbql ????

Immagino che a livello di SCHEMA ENTITA' RELAZIONE le entità CORSO - STUDENTE siano in una relaziobe 1-N.

Tradotto in Annotation JPA a livelli di classi di dominio avrai qualcosa del genere:

Codice:
@Entity
public class Corso{

    .....
    .....
    @OneToMany(targetEntity=Studente.class, mappedBy="corso")
    private ArrayList<Studente> studenteList;
    .....
    .....

    // get e set di studenteList

}

@Entity
public class Studente{

   ...
   ...
   ...
   @ManyToOne
   private Corso corso;

   //get e set di corso

}
Mappando in questo modo le Entity, nei tuoi Dao potrai utilizzare semplicemente JAVA per le operazioni di estrazioni dati (praticamente sql puoi quasi dimenticarlo)

Codice:
/* Classe DAO */
public class StudenteDaoImpl implements StuedenteDao{
    ........
    ........
    protected EntityManager em;

    public StudenteDaoImpl(EntityManager em){
       this.em = em;
    }

    ....
    
    public ArrayList<Studente> prelevaStudentiIscrittiAlCorso(int codiceCorso){
          
          ArrayList<Studente> result = new ArrayList<Studente>();
          //Preleva il corso tramite la sua primary key
          Corso corso = this.em.find(Corso.class,codiceCorso);
          //Preleva tutti gli studenti iscritti al corso (relazione 1.N mappata dalle entity)
          result = corso.getStudenteList();
          return result;

    }

     ....
     ....
}
N.B.: Questa è solo una delle molteplici possibilità di mappaggio delle entity. Ti basta una ricerca su google,ti si aprirà un mondo.

Saluti

Ultima modifica di javacomelava : 21-01-2011 alle 11:03.
javacomelava è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


WoW: Midnight, Blizzard mette il primo, storico mattone per l'housing e molto altro WoW: Midnight, Blizzard mette il primo, storico ...
Ecovacs Goat O1200 LiDAR Pro: la prova del robot tagliaerba con tagliabordi integrato Ecovacs Goat O1200 LiDAR Pro: la prova del robot...
Recensione Samsung Galaxy S26+: sfida l'Ultra, ma ha senso di esistere? Recensione Samsung Galaxy S26+: sfida l'Ultra, m...
Zeekr X e 7X provate: prezzi, autonomia fino a 615 km e ricarica in 13 minuti Zeekr X e 7X provate: prezzi, autonomia fino a 6...
Marathon: arriva il Fortnite hardcore Marathon: arriva il Fortnite hardcore
Nutanix accelera la migrazione da VMware...
Nutanix apre ai neocloud: piattaforma mu...
Nutanix amplia la piattaforma cloud e st...
Le fotografie dell'eclissi solare e dell...
Oracle AI Database si potenzia con nuove...
Russia offline: blackout internet mobile...
Gemini, Google investe 30 milioni per la...
Roborock Qrevo Edge S5A: 17.000 Pa, acqu...
Resa pubblica la foto della ''Terra che ...
Il robot che ha piegato 200 scatole di f...
SteelSeries Aerox 3 Wireless Gen 2: nuov...
"Quasi sociopatico": Sam Altma...
Star Wars Eclipse in difficoltà: ...
Gestione del team e romance organiche: l...
Intel lancia Core Ultra X9 378H: hardwar...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:38.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v