[英]JPQL to SQL converter
是否可以訪問由JPQL生成的SQL?
我想使用SQL以后為我的目的創建一個視圖。
如果重要的話,我正在使用Hibernate。
是否可以訪問由JPQL生成的SQL?
您可以從Hibernate Interceptor
訪問SQL String
,更准確地說是從方法Interceptor.html#onPrepareStatement(java.lang.String)
onPrepareStatement
String onPrepareStatement(String sql) Called when sql string is being prepared. Parameters: sql - sql to be prepared Returns: original or modified sql
如果您決定采用這種方式,最好的選擇是擴展EmptyInterceptor
並僅覆蓋您想要的方法。
您可以使用persistence.xml
的以下聲明來掛鈎攔截器:
<properties>
<property name="hibernate.ejb.interceptor" value="com.acme.MyInterceptor"/>
</properties>
您可以將hibernate.show_sql
屬性設置為true,然后所有SQL都將顯示在控制台上。
<property name="hibernate.show_sql">true</property>
因此,您需要編寫自己的JPQL實現:-)畢竟,將JPQL轉換為SQL用於RDBMS數據存儲區是JPQL實現的目的。 祝好運!
當然,您可以使用現有的JPQL實現,無論是Hibernate,還是EclipseLink,還是DataNucleus ......並且由於它們都是開源的,您應該去挖掘它們的代碼庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.