2017-05-10 11 views
0

重複レコードのIDをHQLを使用してテーブルから返す必要があります。私が試した:HQLの重複レコード

"select pro from FichaProcedimento pro " 
       + " inner join (" 
       + " select pro.ficha.id, proc.id, proc.regiaoDente, proc.face " 
       + " from FichaProcedimento " 
       + " group by pro.ficha.id, proc.id, proc.regiaoDente, proc.face" 
       + " having count(*)>1) proc " 
       + " on pro.procedimento.id = proc.procedimento.id " 
       + " where pro.ficha.id=? " 

エラーが発生しました:

予期しないトークン:(行1、列100の近くに[br.srv.datasolution.infodata.odontologico.entity.FichaProcedimentoからプロ内側の参加プロ選択します( pro.ficha.id、proc.id、proc.id、proc.regiaoDente、proc.faceからbr.srv.datasolution.infodata.odontologico.entity.FichaProcedimentoグループを選択します。カウント数(*)> 1)proc_procedimento.id = proc.procedimento.idここでpro.ficha.id =?]

解決方法

+0

HQLを使用すると、FichaProcedimentoモデルはIDだけでなく取得できます。これを行うには、基準クエリまたはネイティブSQLクエリを使用します。 – Sudhakar

答えて

0

ネイティブクエリで解決しました。ありがとう!例:

delete from Tabela 
where Nome in 
(select Nome from Tabela 
group by Nome 
having Count(Nome)>1) 
and not matricula in 
(select Min(Matricula) from Tabela 
group by Nome 
having Count(Nome)>1)