this code domains.
class btr { date datebreak int timebreak string typebreak user usuario static constraints = { } static mapping = { } } class user { string name string user string password string confirmpassword string state string extent string movilenumber string email string address rol rol static constraints = { } static mapping = { } }
this code controller.
def df = new simpledateformat("yyyy-mm-dd hh:mm") def startdate = params.startdate def stopdate = params.stopdate resultado = btr .executequery("select datebreak, timebreak, typebreak, user, usuario.rol btr inner join user on user = usuario.rol datebreak between :startdate" , :stopdate", [startdate: df.parse(startdate), stopdate: df.parse(stopdate)]) render (view: "data", model: [result: resultado])
this view.
<g:each in="${result}" var="results" status="i"> <tr><td>{results.datebreak}</td><td>{results.timebreak}</td><td> {results.typebreak} </td><td>${results.usuario.rol}</td></tr> </g:each>
then error when submit form. in gsp, when printing data,
exception evaluating property 'datebreak' java.util.arrays$arraylist, reason: groovy.lang.missingpropertyexception: no such property: datebreak class: java.sql.timestamp
could please tell me how join tables in grails executequery , nice learn with, withcriteria
resultado = btr .executequery("select datebreak, timebreak, typebreak, user, usuario.rol btr inner join user on user = usuario.rol datebreak between :startdate" , :stopdate", [startdate: df.parse(startdate), stopdate: df.parse(stopdate)])
should be
resultado = btr .executequery("""select new map (btr.datebreak datebreak, btr.timebreak timebreak, btr.typebreak typebreak, u user, user.usuario.rol rol) btr btr join btr.user u btr.datebreak between :startdate , :stopdate""", [startdate: df.parse(startdate), stopdate: df.parse(stopdate)])
what have raw sql , not hql slight variation , uses actual domain objects join
use left join hasmany may null join typical 1 one relationship
also use left join if 1 one relationship can null
beyond have put actual query raw sql query
def sql=new sql(datasource) return sql.rows(query,whereparams)
Comments
Post a Comment