Java JPQL:在更新中将列设置为null

Java JPQL:在更新中将列设置为null,java,jpa,jpql,datanucleus,Java,Jpa,Jpql,Datanucleus,以下JPQL: UPDATE SignIn signIn SET signIn.cookieUUID = null WHERE signIn.user.id = :userID 由于“=null”,给我以下错误: 但当我将字段设置为空字符串(“”)时,它会起作用 那么如何使用JQPL将列设置为null呢?我认为它的null(大写)::Reference和 或将参数查询用作: String sQuery = "UPDATE SignIn signIn SET signIn.cookie

以下JPQL:

UPDATE SignIn signIn SET signIn.cookieUUID = null WHERE signIn.user.id = :userID
由于“=null”,给我以下错误:

但当我将字段设置为空字符串(“”)时,它会起作用


那么如何使用JQPL将列设置为null呢?

我认为它的
null
(大写)::Reference和

或将参数查询用作:

     String sQuery = "UPDATE SignIn signIn SET signIn.cookieUUID = :cookieUUID "+
                 "WHERE signIn.user.id = :userID";
     Query query= entityManager.createQuery(sQuery );
     query.setParameter("cookieUUID", null);
     query.setParameter("userID", userID);
     query.executeUpdate();

这仍然会给我同样的错误(我在问之前也试过了);)该字段只是注释了@Column,这意味着该列可以为空。@AndrewBourgeois:您可以使用param query吗?我用EclipseLink试过了,看起来很有效。我知道它是这样工作的,但当它真的是静态的时候,我发现这样做真的很尴尬。不过,谢谢你的研究!这里有一个(用于HQL)。它应该能帮助你解决这个问题。希望有帮助。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,则仅链接的答案可能无效-
 UPDATE SignIn signIn SET signIn.cookieUUID = NULL WHERE signIn.user.id = :userID
     String sQuery = "UPDATE SignIn signIn SET signIn.cookieUUID = :cookieUUID "+
                 "WHERE signIn.user.id = :userID";
     Query query= entityManager.createQuery(sQuery );
     query.setParameter("cookieUUID", null);
     query.setParameter("userID", userID);
     query.executeUpdate();