0

Wavemaker を使用して hql クエリを実行する方法を理解しようとしています。Java の経験はあまりありませんが、クエリを作成して Java コードを介して実行できるようにしたいと考えています。それを行うには、Java サービスを使用する必要がありますか? そうでない場合、どのように?

私はこのコードを見てきました:

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();

プロセスを理解できるように、誰かがセッションやトランザクションなどのクラスを説明できますか? 結果リストを表示するにはどうすればよいですか? データベースで更新されますか?

4

2 に答える 2

0

Wavemakerの「com.wavemaker.runtime.RuntimeAccess」によるサービスセッションを利用することができ、それを利用することで全ての操作を行うことができます。

于 2015-01-15T06:42:35.597 に答える
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();
        }
    }
}
于 2014-04-23T21:08:42.027 に答える