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
-~----------~----~----~----~------~----~------~--~---

Reply via email to