2
2つのフィールドを変更するセットで名前付きクエリを作成しようとしています。以下は私が試したもので、うまくいかないものです。 ae.endTimeとsetParameterを追加するまでうまくいきました。 1つのクエリで複数のものを設定できませんか?JPA名前付きクエリセット
@NamedQuery(name = AttEnt.JQL.MARK_INCOMPLETE,
query = "UPDATE AttEnt ae"
+ " SET ae.result ="
+ " Result.INCOMPLETE,"
+ " ae.endTime = :now"
+ " WHERE ae.result IS NULL")
ここで私はクエリを呼び出しています。
final EntityManager em = emf.createEntityManager();
// Mark things with no result as incomplete and endTime to current time
em.getTransaction().begin();
final Query upAtt = em.createNamedQuery(
AttEnt.JQL.MARK_INCOMPLETE);
updateAttempts.setParameter("now", (new Date()).getTime());
upAtt.executeUpdate();
em.getTransaction().commit();
getTime()を削除する必要がありました。これは、intを返していて、TemporalTypeと一致しなかったためです。私は以下を使用して終了し、それは私が必要とするものです。 updateAttempts.setParameter( "now"、新しいDate()、TemporalType.TIMESTAMP); – ralyn