2010-03-12 7 views
4

Je souhaite mapper le résultat d'une requête SQL native à un simple bean dans Grails, comme le fait l'annotation @SqlResultSetMapping.Mappage des ensembles de résultats dans Grails/GORM

Par exemple, étant donné une requête

select x.foo, y.bar, z.baz from //etc...

map le résultat

class FooBarBaz { 
    String foo 
    String bar 
    String baz 
} 

Quelqu'un peut-il donner un exemple de la façon de le faire dans Grails? Merci d'avance.

+0

en double de http://stackoverflow.com/questions/2088641/mapping-result-of-a-native-sql-query-to-grails- domain-class – ataylor

+0

Salut Taylor, le message que vous liez à implique le mappage à une classe de domaine - un cas différent entièrement. – armandino

Répondre

2

J'ai testé avec succès ce dans la console Grails

import groovy.sql.Sql 

class FooBarBaz { 
    String foo 
    String bar 
    String baz 
} 

// Initialising the Sql object like this ensures that the SQL statement 
// will participate in the current transaction (if one exists)   
// 'ctx' refers to the Spring ApplicationContext when using the Grails console 
def sessionFactory = ctx.getBean('sessionFactory') 
Sql sql = new Sql(sessionFactory.currentSession.connection()) 

def query = 'select email, user_real_name, phone from user' 
def results = [] 
sql.eachRow query, {row -> results << new FooBarBaz(foo: row.email, bar: row.user_real_name, baz: row.phone)} 
Questions connexes