2016-09-23 11 views
0
public ArrayList<Task> getTaskDao(Contributor contributor , Task task) { 

    getConnection(); 
    query = session.createQuery("Select t.taskId,t.task from Task t where status='NOTALLOCATED'"); 
    ArrayList<Task> tasklist = (ArrayList<Task>) query.list(); 
    logger.info(tasklist.size()); 
    List list = new ArrayList(); 
    list.add(tasklist.get(0)); 
    return (ArrayList<Task>) list; 

今、同じ方法でタスクテーブルのstatus = 'ALLOCATED'を更新します。hibernateのメソッドヘッドに結果を取得して返した後にテーブルを更新するには?

答えて

0

ステータスを動的に割り当てる必要があります。これを行うには、ステータスをパラメータとして渡し、後でクエリの更新で以下のコードを渡すことができます。したがって

public ArrayList getTaskDao(Contributor contributor, Task task, String status) 
{ 
    getConnection(); 

    Query query = session.createQuery("Select t.taskId,t.task from Task t where status='"+status+"'"); 
    ArrayList tasklist = (ArrayList) query.list(); 
    logger.info(tasklist.size()); 
    List list = new ArrayList(); 
    list.add(tasklist.get(0)); 
    return (ArrayList) list; 
} 

、クエリは状態、すなわち、「ALLOCATED」と以下のコードを呼び出すことによって「NOTALLOCATED」の両方のために動作します:ステータスは、タスクのプロパティである場合は、その後、

getTaskDao(contributor, task,"ALLOCATED") ; 
getTaskDao(contributor, task,"NOTALLOCATED") ; 

をすることができます次のクエリを使用します。

public ArrayList getTaskDao(Contributor contributor, Task task) 
{ 
    getConnection(); 

    Query query = session.createQuery("Select t.taskId,t.task from Task t where status='"+task.getStatus()+"'"); 
    ArrayList tasklist = (ArrayList) query.list(); 
    logger.info(tasklist.size()); 
    List list = new ArrayList(); 
    list.add(tasklist.get(0)); 
    return (ArrayList) list; 
} 
+0

こんにちはのRohitあなたのリプレイや時間に感謝しかし、私の質問は、リストを返した後、私は現在の値はその後、私は何をすべき「notallocated」された場合「割り当てられた」として、ステータス列の値を設定したいとしていますか? –

+0

なぜ値を 'notallocated'に変更する必要がありますか?これはメソッド(getTaskDao)です。ステータスの値を 'notallococated'に変更する場合は、getTaskDao(contributor、task、 "NOTALLOCATED")を使用してそのメソッドを呼び出してください。誰もそのクエリを直接使用することはありません。最初にそのメソッドを呼び出す必要があります。 –

+0

実際に私はステータスが 'notallocated'であることを確認していますが、これはOKですが、今はタスクがフェッチされるとすぐにステータスが「割り当て済み」に変更されます。 –

関連する問題