Avatar billede michartmann Nybegynder
02. juni 2004 - 01:29 Der er 7 kommentarer

Hibernate HQL select * operator

Hej eksperter,
Jeg ønsker at trække all tupler ud af en tabel i en database ved at bruge Hibernate, men har svært ved at se hvorledes det kan lade sig gøre at specifice "select * from tabelX"

Nogle der har en ide?
Avatar billede simonvalter Praktikant
02. juni 2004 - 01:38 #1
Avatar billede simonvalter Praktikant
02. juni 2004 - 02:01 #2
det kan godt være det virker lidt mystisk det her, men som jeg har forstået et siger du select alle "katte" fra tabelX ..
createSQLQuery("select {cat.*} from tabelX {cat}", "cat", Cat.class);
"cat" er et alias til Cat.class
så når du siger tableX{cat} mapper du til klasse Cat.class ( tror jeg nok ;)


grunden til at du skal give et alias er som jeg kan se det at du kan have flere aliases og mappe til flere klasser.. f.eks

String sql = "select {hund}.navn, {kat}.navn..."
String[] aliases = {"hund","kat"};
Class[] clazzes = new Class[] {Hund.class, Kat.class};
Query sqlQuery = session.createSQLQuery(sql, aliases, clazzes);


jeg kan tage fejl da jeg kun har rodet med jdo,aldrig hibernate.
Avatar billede simonvalter Praktikant
02. juni 2004 - 02:17 #3
Det er muligt at du kan lave en helt normal sql sætning igennem createSQLQuery da jeg kan se nogen eksempler i forum, men ikke i dokumentationen hvor de har gjordt det. Altså
Query q = session.createQuery("SELECT * FROM tabelX");
Avatar billede fsconsult.dk Nybegynder
02. juni 2004 - 11:34 #4
Normalt vil man i Hibernate benytte HQL sproget fremfor alm. SQL queries, da HQL forstår de java klasser man har genereret som abstraktion til databasen.

Så typisk vil det nok se mere sådan ud:

List result = session.find("from mypackage.MyObject as myobject where myobject.name=?", "hansen", Hibernate.STRING);

Definitionen af MyObject (MyObject.hbm.xml typisk), fortæller så hvad tabellen fysisk hedder i databasen (kan dække over flere tabeller ved nedarvning).
Avatar billede simonvalter Praktikant
07. juni 2004 - 06:20 #5
Er du kommet videre?
Avatar billede arne_v Ekspert
20. juni 2004 - 15:07 #6
List all = session.find("FROM MyClass AS myobject");

burde vel være nok til at finde alle.
Avatar billede simonvalter Praktikant
18. april 2005 - 21:36 #7
lukketid?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester