gå i hi query language

, gå i hi query language (hql) er en samt query language, svarende til sql, men i stedet for drift på tabeller og piller, hql arbejder med vedvarende genstande og deres egenskaber.hql forespørgsler er oversat af gå i hi i konventionelle sql henvendelser, som på skift udfører aktioner på database, selv om du kan bruge sql erklæringer direkte med overvintrer ved hjælp af indfødte sql, men jeg vil anbefale anvendelse hql, når det er muligt, at undgå database overførsel sted, og drage fordel af gå i hi er sql generation og caching, nøgleord, som udvælger, strategier. fra, og hvor osv. ikke er fortrolige, men egenskaber som tabel og kolonne navne er fortrolige i hql. fra afsnit, vil du bruge fra klausul, hvis du vil have en komplet vedvarende objekter i hukommelsen.følgende er den simple syntaks af fra afsnit: string - hql = "arbejdstager"; forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list();,, hvis du har brug for fuldt ud at kvalificere en klasse navn i hql, angive den pakke, og klasse navn som følger: string - hql = "i kom. hibernatebook. kriterier. ansat" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list();, som klausulen, som, afsnit kan bruges til at tildele kaldenavne til klasser i din hql forespørgsler, specielt når du har længe forespørgsler.for eksempel, vores tidligere simpelt eksempel ville være følgende: string - hql = "fra ansat som e" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list();,, som, nøgleord er frivilligt, og de kan også angive alias direkte efter klasse navn, som følger: string - hql = "fra arbejdstager e" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list();, udvælge klausul, udvælge, afsnit indeholder mere kontrol over resultater end fra afsnit.hvis du ønsker at få nogle egenskaber af genstande i stedet for den fuldstændige objekt, brug den særlige klausul.følgende er den simple syntaks af udvælge klausul får kun first_name inden for arbejdstageren formål: string - hql = "vælg e.firstname fra arbejdstager e" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list(); er det bemærkelsesværdigt, at employee.firstname, er en egenskab af arbejdstager objekt i stedet end inden for arbejdstageren. hvor bestemmelse, hvis du ønsker at indsnævre den specifikke objekter, der er vendt tilbage fra lager, du bruger den, hvor klausul.følgende er den simple syntaks af hvor klausul: string - hql = "fra arbejdstager e, hvor e.id = 10" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list(); for med bestemmelse, at ordne din hql forespørgsel er resultater, skal du bruge, for ved, klausul.du kan bestille resultaterne af en ejendom på genstande i resultatet, der enten stigende (asc) eller faldende (desc).følgende er den simple syntaks for ved hjælp af afsnit: for streng hql = "fra arbejdstager e, hvor e.id > 10, for e.salary desc" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list(),, hvis du ville form af mere end en ejendom, du vil bare tilføje de supplerende egenskaber til udløbet af den for i afsnit adskilt ved kommaer som følger: string - hql = "fra arbejdstager e, hvor e.id > 10" + ", for e.firstname desc, e.salary desc" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list();, gruppe af denne klausul kan gå i hi - klausul, oplysninger fra databasen, og gruppen, baseret på en værdi af en attribut, og det er typisk, brug det resultat, til at omfatte en samlet værdi.følgende er den simple syntaks ved gruppe af afsnit: string - hql = "vælg beløb (e.salary), e.firtname fra arbejdstager e" + "gruppe af e.firstname" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list(); ved navn paramters, gå i hi støtter ved navn parametre i sin hql forespørgsler.det er skrevet hql forespørgsler at acceptere input fra brugeren let, og du behøver ikke forsvare over for sql injektion angreb.følgende er den simple syntaks for anvendelse af nævnte parametre: string - hql = "fra arbejdstager e, hvor e.id =: employee_id" forespørgsel spørgsmål = samling. createquery (hql); spørgsmål. setparameter ("employee_id" 10); liste over resultater = forespørgsel. list();, ajourføre klausul, bulk opdateringer er nyt for hql med gå 3 og sletter virker forskelligt i gå 3, end de gjorde i gå i hi. 2.forespørgslen grænseflade nu indeholder en metode kaldet executeupdate() for gennemførelsen af hql ajourføring eller slette udtalelser.,, ajourføre, bestemmelse kan anvendes til at ajourføre en eller flere egenskaber af en eller flere genstande.følgende er den simple syntaks med opdatering klausul: string - hql = "ajourføre ansat fastsat løn =: løn" + ", hvor id =: employee_id" forespørgsel spørgsmål = samling. createquery (hql); spørgsmål. setparameter ("løn", 1000); spørgsmål. setparameter ("employee_id" 10); int resultat = forespørgsel. executeupdate(); system. println ("rækker berørt:" + resultat), udgår afsnit, slettes, bestemmelse kan anvendes til at slette en eller flere genstande.følgende er den simple syntaks af slette klausul: string - hql = "slettes fra arbejdstager" + ", hvor id =: employee_id" forespørgsel spørgsmål = samling. createquery (hql); spørgsmål. setparameter ("employee_id" 10); int resultat = forespørgsel. executeupdate(); system. println ("rækker berørt:" + resultat), indsættes punkt, hql støtter, indsættes i afsnit kun, hvis regnskaber kan indsættes i en genstand til en anden genstand.følgende er den simple syntaks for at anvende indsætte i afsnit: string - hql = "indsætte i ansat (firstname, lastname, løn)" + "vælg firstname, lastname, løn fra old_employee" forespørgsel spørgsmål = samling. createquery (hql); int resultat = forespørgsel. executeupdate(); system. println ("rækker berørt:" + resultat), samlede metoder, hql støttes af en række af de metoder, der svarer til sql.de virker på samme måde som i hql sql og følgende er en liste over de disponible funktioner:, s.n. funktioner beskrivelse 1 avg (ejendomsret navn) gennemsnit af en ejendom er værdi 2 tæller (ejendomsret navn eller *) antal gange ejendom sker i resultaterne 3 max (ejendomsret navn) den maksimale værdi af værdierne for 4 minutter (ejendomsret navn) minimumsværdi af ejendommen værdier 5 beløb (ejendomsret navn) summen af værdierne, forskellige nøgleord tæller kun de enestående værdier i rækken.følgende spørgsmål vil vende tilbage kun enestående betydning: string - hql = "vælg tæller (særskilte e.firstname) fra arbejdstager e" forespørgsel spørgsmål = samling. createquery (hql) liste over resultater = forespørgsel. list();, sidenummerering af spørgsmål, der er to metoder til forespørgslen grænseflade for sidenummerering, s.n. metode &. beskrivelse 1, spørgsmål setfirstresult (int startposition), denne metode tager et tal, der repræsenterer den første linje i deres resultater, begyndende med række 0., 2, spørgsmål setmaxresults (int maxresult), denne metode siger gå efter et bestemt antal, maxresults, genstande, ved hjælp af ovennævnte to metoder, vi sammen kan opbygge en personsøgning komponent i vores net eller svinge anvendelse.følgende er et eksempel, som man kan udvide til at hente 10 rækker på et tidspunkt: string - hql = "ansat" forespørgsel spørgsmål = samling. createquery (hql); spørgsmål. setfirstresult (1); spørgsmål. setmaxresults (10) liste over resultater = forespørgsel. list();,



Previous:
Next Page: