簡體   English   中英

JPQL到SQL轉換器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM