2015-01-06 3 views
1

У меня есть класс домена, как это:Grails запустить запрос из валидатора

class PurchaseOrder { 

    String nomor 
    Date tanggal 
    Supplier supplier 

    def dataSource 


... 
    static constraints = { 
     tanggal validator: { val, obj -> 
      SimpleDateFormat tempSdf = new SimpleDateFormat('yyyy-MM-dd') 

      List tempRows = new Sql(dataSource).rows("select max(start_date) as tanggal_saldo_awal from spareparts_bb where start_date <= now()") 
      Date tanggalSaldoAwal = null 
      if (tempRows != null) { 
       tanggalSaldoAwal = tempRows[0].tanggal_saldo_awal 
       if (val < tanggalSaldoAwal) { 
        return(['lebihKecilTanggalSaldoAwal', tempSdf(tanggalSaldoAwal)]) 
       } 
      } 

     } 

} 

Я хочу назвать свою хранимую процедуру из моего пользовательского валидатора. Но я получил эту ошибку

Класс: groovy.lang.MissingPropertyException

Сообщение: Нет такого свойства: DataSource для класса: com.integra.PurchaseOrder Возможные решения: DataSource

+2

Используйте 'obj.dataSource' внутри валидатора, потому что он работает в статическом контексте. – dmahapatro

+0

Ницца ... отлично работал ... Thx много ... почему вы не пишете свой ответ в разделе ответа? почему вы публикуете свой ответ в разделе комментариев? –

+0

Готово. Добавление комментария было быстрым при вводе большого пальца. :) – dmahapatro

ответ

0

Использование obj.dataSource внутри валидатор, потому что он работает в статическом контексте.

Смежные вопросы