# Query für Derby DB mit Enterbrise Bean



## NT2005 (8. Nov 2011)

Hallo Community,

Ich bin sehr neu in J2EE. Zurzeit versuche ich Datenbanken etwas zu bearbeiten.

Ich schicke eine Message mit dem neuen Objekt zu meinen MessageListener. Dieser erhält sie über onMessage() und speichert dann diese mit 
	
	
	
	





```
em.persist(object);
```
 in die DB. Läuft ohne Probleme.

Nun will ich aber zum Beispiel größere Datenbankarbeit ausführen. Zum Beispiel Daten aus meiner Datenbank löschen, jedoch finde ich keine Methode, die Query ála _INSERT INTO Benutzer"(Values (5,"Keil","Faust"))_ bearbeitet.

Ich verwende NetBeans als Programmierumgebung sowie Derby als Datenbank mit glassfish als Server.

Ich hoffe meine Frage ist verständlich und ihr könnt mir weiter helfen. Vielleicht nochmal zusammendfasend: Ich möchte eine Datenbankabfrage durchführen.


----------



## SlaterB (8. Nov 2011)

vielleicht


> createNativeQuery
> 
> Query createNativeQuery(String sqlString)
> 
> Create an instance of Query for executing a native SQL statement, e.g., for update or delete.


EntityManager (Java EE 5 SDK)


----------



## TheDarkRose (8. Nov 2011)

NT2005 hat gesagt.:


> Nun will ich aber zum Beispiel größere Datenbankarbeit ausführen. Zum Beispiel Daten aus meiner Datenbank löschen, jedoch finde ich keine Methode, die Query ála _INSERT INTO Benutzer"(Values (5,"Keil","Faust"))_ bearbeitet.



wenn du löschen willst, gibt es die remove() Methode. sonst stimme ich meinen Vorgänger zu.


----------



## NT2005 (8. Nov 2011)

Vielen Dank. Hat nun alles geklappt. 

Ich muss nochmal nachfragen:
Die Abfrage scheint zu klappen aber ich kann das Objekt nicht mehr casten...


```
public void doSomething() {
        Query query = em.createNativeQuery("SELECT * FROM Person");
        List oq = query.getResultList();
        Person p = (Person) oq.get(0);
        System.out.println(p.getName());
    }
```

Fehlermeldung:

```
[Ljava.lang.Object; cannot be cast to entities.Person
```

Mit @SuppressWarnings("unchecked") funktioniert es auch nicht.


----------



## TheDarkRose (8. Nov 2011)

Ja, wie sollte den auch der EntityManager wissen, welches Objekt eben du damit abrufst. Un den Sinn dahinter verstehe ich auch nicht, dann ist das Prinzip eines ORM sinnlos und du kannst gleich JDBC nutzen.


----------

