Home > JPA - Hibernate > Datensätze ohne Mapping – SqlResultSetMapping

Datensätze ohne Mapping – SqlResultSetMapping

Wenn man einfach ein SELECT – Befehl ohne ein Entity schreiben will,  kann man NativeQuery benutzen. Das ist aber nicht so einfach, als man denk. Besonders wenn man es nicht weist. Hier ist ein Beispiel ;

Zu erst muss mann SqlResultSetMapping machen. Bei SqlResultSetMapping hat man die möglichkeit, ergebnisse in verschiedene Entitys zu speicher oder nur mit skalaren ergebnis mengen , also ohne Entity, zu arbeiten.

die folgende Code muss irgend eine Entity-Class hinzugefügt werden.

@Entity
@Table(name = "rollen")
@SqlResultSetMapping(name = "rollenBenutzerrechtResult",
columns = { @ColumnResult(name = "name"),
@ColumnResult(name = "benutzerrechte")
})
public class Rollen implements Serializable {

für die andere möglichkeiten bei SqlResultSetMapping, siehe

http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/

Nachdem man SqlResultSetMapping erstelt hat, kann man jetzt seine NativeQuery schreiben;

List<Object[]> rollen =  entityManager.createNativeQuery(
"select name, benutzerrechte from benutzerrechte"
,"rollenBenutzerrechtResult").getResultList();
// also ergebnisse als Object[] zurückbekommen
// und jetzt  kann man ergebnisse ausgeben
for(Object object : rollen)
{
Object[] obj = (Object[]) object;
System.out.println((String)obj[0]); // name
System.out.println((String)obj[1]); // benutzerrechte
}

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: