La tabla se especifica dos veces, tanto como destino para 'ACTUALIZAR' como como fuente de datos separada

Yo uso spring-jpa con implementación de hibernación. Uso mariadb e intento hacer una subconsulta de actualización

Mi estructura de objeto

@Entity
public class Room {
  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long roomId;

  @ManyToOne  
  @JoinColumn(name = "appartment_id")
  private Appartment appartment;
}

@Entity
public class Appartment {

  @Id
  @GeneratedValue(strategy = GenerationType.AUTO)
  private Long appartmentId;

  @OneToMany
  @JoinColumn(name="appartment_id")
  private Set<Room> roomList;
}

update Room r1
set r1.available = :availability
where r1.roomId in
( select r2.roomId from Room r2 JOIN r2.appartment a1 WHERE a1.appartmentId = :appartmentId )

Me sale este error

java.sql.SQLException: la tabla 'room' se especifica dos veces, tanto como destino para 'UPDATE' como como fuente de datos separada

Respuestas a la pregunta(1)

Su respuesta a la pregunta