Hibernate rodando query

Tenho essa query

SELECT a.id, a.machineId, a.date, title,math_rules,status,

/Profit/

(
abs((select c.C1 from counters_history_robo c where c.machineId = a.machineId ORDER BY id desc LIMIT 1)-
(select c.C1 from counters_history_robo c where c.machineId = a.machineId ORDER BY id asc LIMIT 1)))-
(abs((select c2.C2 from counters_history_robo c2 where c2.machineId = a.machineId ORDER BY id desc LIMIT

1)-

(select c2.C2 from counters_history_robo c2 where c2.machineId = a.machineId ORDER BY id asc LIMIT 1)))

Profit

/FIM Profit/

FROM counters_history_robo a
join machine_id on machine_id.id = a.machineId
join machine_status on machine_status.id = a.machineId
join games on games.id = machine_id.game

GROUP BY machineId
ORDER BY machineId, id`

chamando todas as maquinas e tem os seus atributos que eu preciso, alguns fields sao pegos de outras tabelas.

Como posso fazer o hibernate rodar essa query e me retornar uma lista disso?

vi nesse link

link

como rodar, mas ja vi que tem umas diferenças não é só jogar o texto la dentro.

tem algo pra join?