[RESOLVIDO]Dificuldade em criar Query

Tenho 3 tabelas que “contam” para o tópico (acredito eu), existe uma tabela Agenda que liga-se a tabela Maquina, que por sua vez liga-se a tabela Criticidade. Criei no SQL Editor do Postgre e funcionou, mas, ao jogar no create Query da minha DAO… só erro…

SELECT * FROM 
  public.agenda, 
  public.maquina maq
WHERE 
  agenda.maq_cod = maq.maq_cod AND
  maq.cri_cod=3 and age_dia = ( SELECT max(age_dia) FROM agenda ) 

Rodando no BD, ele funciona… Mas não estou conseguindo levar a ideia do Create Query, tentei assim:

public List<Agenda> busca_ultima_agenda_critica() {
        Query q = session. createQuery("FROM Agenda age, Maquina maq WHERE \n" + 
        "  age.maq_cod = maq.maq_cod AND maq.cri_cod=3 AND age_dia = ( SELECT max(age_dia) FROM age) ");
        return q.list();
    }

o retorno é

could not resolve property: maq_cod of: model.Agenda [FROM model.Agenda age, model.Maquina maq WHERE
age.maq_cod = maq.maq_cod AND maq.cri_cod=3 AND age_dia = ( SELECT max(age_dia) FROM age) ]

Segue Models:

@Entity
@SequenceGenerator(name = "seq_Maq",
sequenceName = "seq_Maq",
allocationSize = 1)
public class Maquina {
        
        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE,
        generator = "seq_Maq")
        private int maq_cod;
             
        private String maq_desc;
        
        private Boolean maq_sucata;
        
        private String maq_patrimonio;
        
        private Date maq_data_sucata;
        
        private String maq_num_serie;
    
        @JoinColumn(name = "set_cod", referencedColumnName = "set_cod")
        @ManyToOne(optional = false) 
        private Setor setor;
        
        @JoinColumn(name = "cri_cod", referencedColumnName = "cri_cod")
        @ManyToOne(optional = false) 
        private Criticidade criticidade;

generators

@Entity
@SequenceGenerator(name = "seq_age_maq",
sequenceName = "seq_age_maq",
allocationSize = 1)
public class Agenda {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_age_maq")
    private int age_cod;
    @Temporal(TemporalType.DATE)   
    private Date age_dia;

@JoinColumn(name = "maq_cod", referencedColumnName = "maq_cod")
@ManyToOne(optional = false) 
private Maquina maquina;

@JoinColumn(name = "sta_cod", referencedColumnName = "sta_cod")
@ManyToOne(optional = false) 
private Status status;

fejohann

Na entidade Agenda, o objeto do tipo Maquina é maquina e não maq_cod. No caso, você tem que trocar age.maq_cod por age.maquina

Além disso, acredito que age_dia e FROM age vão apresentar problemas. Acredito esse final ficar

age.age_dia = (SELECT max(agenda.age_dia) FROM Agenda agenda)

Muito obrigado… agora funcionou!!

Vlww