Эквивалент HQL для этого Sql-запроса

#hibernate #hql

#спящий режим #hql

Вопрос:

 select part.PaId,part.PaName,part.PaPartNumber,part.PaGroup from Part as part,(select 
PaId,PaGroup from Part where PaPartNumber='195-15-12750') as pa where pa.PaId=part.PaID  
or pa.PaGroup=part.PaGroup
  

что такое hql-запрос для вышеупомянутого?

замените все мои имена именами классов и свойств, но возникает ошибка!

HQL:

 Select part.ID,part.Name,part.PartNumber From Part as part,(Select par.ID,par.Group 
From Part as par Where par.PartNumber Like ?) as pa Where part.ID=pa.ID or  
part.Group=pa.Group
  

Ошибка:

 SEVERE: line 1:73: unexpected token: (
Oct 26, 2011 7:23:01 PM org.hibernate.hql.ast.ErrorCounter reportError
SEVERE: line 1:98: unexpected token: From
unexpected token: ( near line 1, column 73 [Select part.ID,part.Name,part.PartNumber 
From Depot.Entity.Part as part,(Select par.ID,par.Group From Depot.Entity.Part as par 
Where par.PartNumber Like ?) as pa Where part.ID=pa.ID or part.Group=pa.Group]
[Ljava.lang.StackTraceElement;@1195c2b
  

Комментарии:

1. Как мы можем узнать имя без сопоставлений?

Ответ №1:

Вам просто нужно заменить имена столбцов именами свойств java, а имя таблицы именем класса Java, и тогда HQL готов.