Java 无法解析属性:X/Y Hibernate

Java 无法解析属性:X/Y Hibernate,java,hibernate,alias,criteria,Java,Hibernate,Alias,Criteria,我有1个实体,属性是其他实体,例如: @Entity public class Visite implements Serializable { @Id private Integer id; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="agent_uid") private Agent agent; } @Entity public class Agent implements Seriali

我有1个实体,属性是其他实体,例如:

@Entity
public class Visite implements Serializable {
    @Id
    private Integer id;

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="agent_uid")
    private Agent agent;
}

@Entity
public class Agent implements Serializable {
    @Id
    private Integer uniqueId;

    private String displayName;
}
当我尝试对“代理”字段的“Visite”应用限制时,会出现错误:“无法解析属性:X of:Visite”,其中X是字段。我试着使用creatingAlias,但不起作用

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Visita.class).createAlias("pdv", "pdv").
                    createAlias("pdv.address", "address").
                    createAlias("pdv.category", "category").
                    createAlias("agent", "agent").
                    createAlias("visiteType", "visiteType", Criteria.LEFT_JOIN).
                    createAlias("reason", "reason", Criteria.LEFT_JOIN).
                    add(Restrictions.eq("agent.uniqueId", agentId));
例如,在本例中,agent.uniqueId有效,但agent.displayName无效。 我得到的另一个失败是我得到了4次查询结果,我得到了所有重复的结果,我不知道为什么


谢谢你

只是一个提示:将字段翻译成英语可以让非西班牙语人士更容易理解其语义。对不起,我没有意识到。谢谢;)@Juanjo,你的问题不清楚。什么是
Visita、Visitador
字段?此外,您正在为实体中不存在的字段(如地址、类别等)创建别名。最后,不清楚哪些字段有效,哪些字段无效,以及您收到的异常(如果有异常,请显示异常的堆栈跟踪)。请编辑您的问题并提供完整的细节。我用翻译更新了问题。对不起,我没有放更多的代码来澄清这个问题。例如,如果我想对agent进行限制,agent.uniqueId可以工作,但agent.displayName不能example@Juanjo,仍然不清楚当你说它不起作用时,它意味着什么?得到一些错误?请检查hibernate生成的查询,看看是否有任何问题。