Actualizar valor con unirse

Al usar Hibernate, me gustaría actualizar los datos en la base de datos según las condiciones, pero obtuve el siguiente error: “el nodo a atravesar no puede ser nulo”

Aquí está la descripción de mi base de datos:

Account: id, email, password Member : id, account, team Team: id, current (and a reference to member => members) 

Aquí está mi JPA:

 UPDATE Team t SET t.current = :current LEFT JOIN t.members m WHERE t.current = :current_true AND m.account = :account 

¿Qué estoy haciendo mal? Si muevo la IZQUIERDA IZQUIERDA a antes del SET:

 UPDATE Team t LEFT JOIN t.members m SET t.current = :current WHERE t.current = :current_true AND m.account = :account 

Tengo: “esperando SET, encontrado a la IZQUIERDA”

Si elimino la unión:

 UPDATE Team t SET t.current = :current WHERE t.current = :current_true AND t.members.account = :account 

Tengo: “bash ilegal de desreferenciar la colección”.

¿Cuál es la forma correcta de actualizar los valores?

¡Gracias por tu ayuda!

La especificación JPA 2.0 en el capítulo 4 contiene detalles de todas las características soportadas en JPQL. Esta es la definición de la statement de “actualización”:

La syntax de estas operaciones es la siguiente:

 update_statement ::= update_clause [where_clause] update_clause ::= UPDATE entity_name [[AS] identification_variable] SET update_item {, update_item}* update_item ::= [identification_variable.]{state_field | single_valued_object_field} = new_value new_value ::= scalar_expression | simple_entity_expression | NULL 

Como puede ver, el soporte para múltiples entidades no se indica aquí. Supongo que tendrá que encontrar una forma diferente de hacerlo, tal vez crear un método que seleccione las entidades que desea actualizar primero y luego iterar sobre los resultados configurando los valores. O podrías usar una actualización nativa de SQL.

Utilice una subconsulta:

(no probado)

 UPDATE Team t SET t.current = :current WHERE t.id in (select t1.id from Team t1 LEFT JOIN t1.members m WHERE t1.current = :current_true AND m.account = :account)