SQL para HQL com problema no update

Senhores(as),

tenho essa query em SQL:

update topicolivro set topicoPai_id = (select tll.id from topicolivro tll where tll.clonede = topicolivro.topicopai_id and tll.livroeletronico_id=X) where livroeletronico_id=X

tentei fazê-la em HQL, ficou assim:

update TopicoLivro t set t.topicoPai.id = (select tll.id from TopicoLivro tll where tll.cloneDe = t.topicoPai.id and tll.livroEletronico.id="+livroClone.getId()+") where livroeletronico_id="+livroClone.getId()

a execução montou a seguinte query:

update TopicoLivro set topicoPai_id=(select topicolivr1_.id from TopicoLivro topicolivr1_ where cloneDe=topicoPai_id and  livroEletronico_id=X)
where livroeletronico_id=X

e esta não funciona como desejo, na verdade ela não funciona. Percebi que ele desconsidera o alias que informei (“TopicoLivro t”), no POSTGRES esse alias não é entendido, por isso acho que o problema é do driver.

Então tentei usar o sql para executar o update dessa forma: createSQLQuery(query).executeUpdate()

mas retornou o erro:
java.lang.UnsupportedOperationException: Update queries only supported through HQL

Alguma sugestão?