2013-09-29 12 views
0

試圖找出如何使用wavemaker運行hql查詢。 我對Java沒有太多的見解,但我希望能夠編寫一個查詢並通過java代碼運行它。 要做到這一點,我應該使用java服務嗎?如果沒有,那麼如何?Java服務和hql查詢 - wavemaker 6.5

我已經看到了這個代碼:

import org.hibernate.Query; 
import org.hibernate.Session; 
import org.hibernate.Transaction; 

Session session = sessionFactory.openSession(); 
Transaction tx = session.beginTransaction(); 

Query query = session.createQuery("select and so on.."); 
// set parameter values, e.g. 
// query.setString("name", "Matthias"); 
List result = query.list(); 

tx.commit(); 
session.close(); 

有人能解釋像會話和事務類,所以我可以理解這個過程? 如何顯示結果列表,並在我的數據庫中更新?

+0

看看「Hibernate的Java持久性」一書,關於會話和事務的東西大約需要120頁:)你期望什麼?你需要去閱讀,並閱讀我的意思是很多。 5句話無法解釋。 – legion

回答

0

您可以使用此示例代碼

import com.wavemaker.runtime.RuntimeAccess; 

import org.hibernate.Session; 
import org.hibernate.SQLQuery; 
import java.util.List; 
import java.util.ArrayList; 

import com.yourDBService.yourDB; 

public class dbutil extends com.wavemaker.runtime.javaservice.JavaServiceSuperClass { 
    /* Pass in one of FATAL, ERROR, WARN, INFO and DEBUG to modify your log level; 
    * recommend changing this to FATAL or ERROR before deploying. For info on these levels, look for tomcat/log4j documentation 
    */ 
    public dbutil() { 
     super(INFO); 
    } 

public void updateStatus(String transactionId, String status) { 

     String sQuery = ""; 
     try { 
      service.begin(); 
      Session session = service.getDataServiceManager().getSession(); 
      sQuery = "update dbo.ORDERS_TEST set status='" + status + "' where transaction_id = " + transactionId; 
      System.out.println(">>>> Check the query string >>>>#" + sQuery + "#"); 
      SQLQuery query = session.createSQLQuery(sQuery); 

      query.executeUpdate(); 

      service.commit(); 
     } 
     catch (Exception ex) { 
      service.rollback(); 
     } 
    } 
} 
0

您可以通過造波「com.wavemaker.runtime.RuntimeAccess」和使用,你可以做所有的操作使用的服務會話......請閱讀爲本研究此簡短的知識網站