# Beans



## Frank Heinzelmann (20. Sep 2008)

Ich beschäftige mich erst seit kurzem J2EE und arbeite mit gerade in Hibernate ein. In einem Buch über Hibernate ist bei mir eine Frage aufgetaucht, nachdem ich den Quellcode gesehen habe:

Was ist bei einer Bean besser für jede Aktion eine Bean also so

```
class MyHibernateSessionBeanSave() {
                save() {
                       ....
                }
        }

        class MyHibernateSessionBeanLoad() {
                load() {
                       ....
                }
        }
```

oder eine Bean mit mehreren Aktionen

```
class MyHibernateSessionBean() {
                save() {
                       ....
                }

                load() {
                       ....
                }
        }
```

Also ich rede hier nicht von der Übersichtlichkeit, da wäre der letzter Code wahrscheinlich besser, sondern von der allg. Definitionsfrage oder Performance gründen, oder spielt dieses selbst bei größeren Anwendung keine Rolle?

Danke
Frank


----------



## winfi (22. Sep 2008)

Vorweg: Was Hibernate und Beans angeht bin ich auch noch recht unbedarft.

Nach der generellen Definition würde ich eher zu Lösung 2 tendieren, dein Code-Auszug sieht allerdings irgendwie nicht wirklich nach einer standardkonformen Bean aus...

Folgendes habe ich jedenfalls erst kürzlich im "Java EE 5 Tutorial" von Sun gelesen:



> [...]A property does not have to be implemented by an instance variable. It must simply be
> accessible using public methods that conform to the following conventions:
> ■ For each readable property, the bean must have a method of the form:
> PropertyClass getProperty() { ... }
> ...



Vielleicht hilfts dir ja.

Gruß
winfi


----------



## Lacos (22. Sep 2008)

Gewöhnlich packt man so etwas generell in eine Klasse..


----------



## FArt (23. Sep 2008)

Und gewöhnlich passt man sein Design nicht zweifelhaften Performanceoptimierungen an.


----------



## klarkimming (23. Sep 2008)

> Ich beschäftige mich erst seit kurzem J2EE und arbeite mit gerade in Hibernate ein



Vergiss das "alte" Hibenate und arbeite dich direkt in die JPA Umsetzung von Hibernate ein.

Insbesondere wenn du spaeter EJB 3.0 benutzen willst!

Gruesse


----------



## Frank Heinzelmann (24. Sep 2008)

klarkimming hat gesagt.:
			
		

> > Ich beschäftige mich erst seit kurzem J2EE und arbeite mit gerade in Hibernate ein
> 
> 
> 
> ...



Meinst du Hibernate mit Annotations?


----------



## ps (24. Sep 2008)

Er meint JPA (Java Persistence API).
Hibernate implementiert das - im Prinzip benutzt JPA Annotationen auf den Entity Beans und den EntityManager. Mehr brauchts nicht - kein XML, keine hibernatespezifischen Klassen (nur javax.persistence.* ).

Weitere JPA-Implementationen sind EclipseLink (ehem. Oracle TopLink - war vor einiger Zeit noch richtig richtig teuer ^^), OpenJPA, JPOX, etc.


----------

