2016-06-26 5 views
-2

empId、empNameおよびempAddressの3つのフィールドを持つ従業員クラスがあるとします。単一データベース問合せでの休止状態での更新

私は、empIdが1と言う従業員のアドレスのみを更新したいと思います。私がsession.update(emp)を使用すると、empNameはnullに設定されます。

hqlを使用せずに単一のデータベースクエリでこれを実現する方法はありますか。私は、SQLクエリを複製したかった

+0

あなたが実際に永続化したい 'empName'の値を使用しないのはなぜ? HibernateはJDBC SQLクエリを実行しています。 –

+0

私はempId(識別子)とempAddress(更新したいフィールド)しか持っていません。 –

答えて

0

"更新従業員はEMPID = 1 empAddress = 'ADDR1' を設定は" hibernate DML-style operationsを参照してください。

休止クエリインターフェイスは、現在のexecuteUpdate(と呼ばれるメソッドを含む)HQLのUPDATEを実行するための:

String hql = "UPDATE Employee set empAddress = :empAddress " + 
      "WHERE empId = :empId"; 
Query query = session.createQuery(hql); 
query.setParameter("empAddress", 1000); 
query.setParameter("empId", 10); 
int result = query.executeUpdate(); 
System.out.println("Rows affected: " + result);