Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过反射访问持久属性的字段时出错_Java_Hibernate - Fatal编程技术网

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

Java 通过反射访问持久属性的字段时出错,java,hibernate,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 obra类 @Entity @Table (name = "obras") public class Obr

我在休眠状态下出错了

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
obra类

@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;
类CIDADE

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

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

    @Column
    private String nome;

公共列表(整数cidade){

会话会话=HibernateUtil.getSessionFactory().openSession(); 条件=session.createCriteria(Obra.class); 如果(cidade!=null){ 标准。添加(限制)和( 限制。eq(“cidade”,cidade)); } 标准.addOrder(Order.asc(“id”)); List obraList=criteria.List(); session.close(); 回归客观; } 我不知道怎么修,我是个乞丐,我想修。 有人能帮我吗?
谢谢。

您没有用于
Cidade
类的get/setter,因此当框架初始化您的类或将值设置到它的字段时,它将抛出此错误。它是生成的。
    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;
}