# Mit Hibernate Daten holen?



## EOB (17. Jan 2007)

hallo, ich habe eine tabelle mit 25 spalten. ich moechte jetzt daten aus dieser tabelle holen und zwar anhand von 3 werten dieser tabelle, die ich uebergebe an eine methode. wie mach ich das aber dann mit hibernate? ich habs jetzt so.


```
public List getMotor(String type, String marke, String beschreibung) throws BaatkatalogenException{
	
	Session session = HibernateUtil.getSessionFactory().getCurrentSession();
	session.beginTransaction();
	Criteria criteria = session.createCriteria(MotorData.class);
	//?????????????
	
	return criteria.list();

    }
```

ich moechte also eine liste mit motoren, die eben die 3 attribute haben. sone art AND?

vielen dank fuer die hilfe


----------



## kama (17. Jan 2007)

Hallo, 
da gibt es in Hibernate ca. 3 Varianten:

1. Criteria, wie Du schon angedeutet hast:


```
session.createCriteria(MotorData.class).add(Restrictions.eq("attributeNamen", Wert)).list();
```
Beim "Attributnamen" ist darauf zu achten, dass dieser nach EJB Standard angegeben ist, wie der "getter" der Klasse heißt (z.B. getDrehzahl) => .eq("drehzahl", 500) etc.

2. HQL


```
session.createQuery("HQL....").list();
```
Hier also 


```
String hql = "from MotorData where drehzahl = " + Wert;
```

3. Nacktes SQL (nur in Ausnahmefällen zu Empfehlen:


```
getSession().createSQLQuery("SQL ...");
```

Ansonsten das Hibernate Tutorial lesen oder ein Buch kaufen ;-) oder eben hier fragen oder das Hibernate Forum fragen.

MfG
Karl Heinz Marbaise


----------



## kama (17. Jan 2007)

kama hat gesagt.:
			
		

> Hallo,
> da gibt es in Hibernate ca. 3 Varianten:
> 
> 1. Criteria, wie Du schon angedeutet hast:
> ...


----------



## EOB (17. Jan 2007)

danke, was muss denn bei wert rein? also:


```
session.createCriteria(MotorData.class).add(Restrictions.eq("attributeNamen", Wert???????????)).list();
```


ich nehme an, dass der attributname die spalte in der tabelle ist?
danke


----------



## kama (17. Jan 2007)

Hi,



```
int drehzahl = 500;
session.createCriteria(MotorData.class).add(Restrictions.eq("attributeNamen", drehzahl)).list();
```

oder so:

```
session.createCriteria(MotorData.class).add(Restrictions.eq("attributeNamen", 500)).list();
```

MfG
Karl Heinz Marbaise


----------



## EOB (17. Jan 2007)

und wie wuerde es gehen, wenn jedes der attribute in einer andren tabelle zu finden ist? also eins in motor, das andre in fabrikat und das andre in modell? die beans dazu heissen MotorData, FabrikatData und eben Modelldata...

danke


----------



## EOB (18. Jan 2007)

keiner ne idee?


----------

