通过持久属性的反射访问字段时出错

Raf*_*ira 5 java hibernate

我在休眠时遇到了这个错误

Error accessing field [private java.lang.Integer br.com.moldargesso.moldar.entities.Cidade.id] by reflection for persistent property [br.com.moldargesso.moldar.entities.Cidade#id] : 1
Run Code Online (Sandbox Code Playgroud)

班级

@Entity
@Table (name = "obras")
public class Obra {


    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column (name = "id")
    private Integer id;

    @OneToOne 
    @JoinColumn (name = "fk_cliente")
    private Cliente cliente;

    @OneToOne
    @JoinColumn (name = "fk_cidade")
    private Cidade cidade;
Run Code Online (Sandbox Code Playgroud)

类 CIDADE

@Entity
@Table (name = "cidade")
public class Cidade {

    @Id
    @GeneratedValue (strategy = GenerationType.IDENTITY)
    @Column
    private Integer id;

    @Column
    private String nome;
Run Code Online (Sandbox Code Playgroud)

公共列表列表(整数 cidade){

    Session session = HibernateUtil.getSessionFactory().openSession();
    Criteria criteria = session.createCriteria(Obra.class);

    if(cidade != null){

        criteria.add(Restrictions.and(
            Restrictions.eq("cidade", cidade)));
    }

    criteria.addOrder(Order.asc("id"));
    List<Obra> obraList = criteria.list();
    session.close();
    return obraList;
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何修复它,我是初学者,我想修复它。有人可以帮助我吗?谢谢。