Everything I've ever seen has been provider-specific. On 2/10/09, Viktor Klang <viktor.kl...@gmail.com> wrote: > > Is there a JPA defined way to turn loggin of DML on? > > On Tue, Feb 10, 2009 at 3:45 PM, Derek Chen-Becker > <dchenbec...@gmail.com>wrote: > >> Yes, but that only works for Hibernate. I use Hibernate from everything, >> but I'm trying to keep the library usable for any JPA provider. >> >> Derek >> >> On 2/10/09, Viktor Klang <viktor.kl...@gmail.com> wrote: >> >>> Otherwise you can enable it in the logging: >>> >>> log4j.logger.org.hibernate.SQL=DEBUG >>> >>> On Tue, Feb 10, 2009 at 7:50 AM, Derek Chen-Becker < >>> dchenbec...@gmail.com> wrote: >>> >>>> Interesting idea. I'll look into adding something like this >>>> (configurable at boot and/or runtime) into scalajpa. >>>> >>>> Derek >>>> >>>> >>>> On 2/9/09, Oliver <ola...@gmail.com> wrote: >>>>> >>>>> >>>>> Hi Derek and interested parties >>>>> >>>>> I know there is a showSQL option that can be enabled with >>>>> JTA/Hibernate but I find the output verbose and uninformative about >>>>> parameter replacement. >>>>> >>>>> So, I have my own ScalaQuery that allows simple debugging - the main >>>>> differences are - >>>>> >>>>> var queryParams: List[Pair[String,Any]] = Nil >>>>> /* the following method needs to be called by the various >>>>> SetParameter methods */ >>>>> def addParam(one: String,two: Any) = { >>>>> query.setParameter(one, two) >>>>> queryParams = (one, two) :: queryParams >>>>> } >>>>> /* >>>>> output the query with parameters substitued, for debugging ... >>>>> */ >>>>> def getQueryWithParams() = { >>>>> var q = queryStr >>>>> try { >>>>> queryParams.foreach{v => >>>>> var rep = v._2 match { >>>>> case d: Date => "'"+SUtil.formatDate(d, >>>>> "dd/MM/yyyy")+"'" >>>>> case s: String => "'"+s+"'" >>>>> case x => if (x==null) "" else x.toString >>>>> } >>>>> rep = rep.replaceAll("\\$", "ddDollardd") // stupid bug >>>>> q = q.replaceAll(":"+v._1, rep) >>>>> } >>>>> q.replaceAll("ddDollardd", "\\$") >>>>> } catch { >>>>> case e: Exception => q+" PARAMS "+queryParams+ " EXCEPTION >>>>> "+e >>>>> } >>>>> } >>>>> >>>>> With this I can log the query via >>>>> Log.info(emailQuery.getQueryWithParams()) >>>>> >>>>> Better still, (assuming execOnce exists in a utility object) when I >>>>> only need to see the query once in the log >>>>> /* >>>>> execulte execFn, just once for the jvm. >>>>> */ >>>>> val execOnceSet = scala.collection.mutable.Set("") >>>>> def execOnce(key: String, execFn: => Unit) = { >>>>> if (!execOnceSet.contains(key)) { >>>>> execOnceSet += key >>>>> execFn >>>>> } >>>>> } >>>>> >>>>> execOnce("findByEmail", Log.info(emailQuery.getQueryWithParams()) ) >>>>> >>>>> >>>>> You can add the functionality if you find it useful >>>>> >>>>> cheers >>>>> Oliver >>>>> >>>>> >>>>> >>>>> >>> >>> >>> -- >>> Viktor Klang >>> Senior Systems Analyst >>> >>> >>> >> >> >> > > > -- > Viktor Klang > Senior Systems Analyst > > > >
--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---