例外:“无法通过反射设置器设置字段值”

时间:2014-09-02 17:50:44

标签: java mysql hibernate

当我尝试从hibernate数据库读取写入数据时,我收到此错误:

Exception in thread "AWT-EventQueue-0" javax.persistence.PersistenceException: org.hibernate.PropertyAccessException: could not set a field value by reflection setter of familyTree.data.Data1.bio

这是用构造函数保存数据的类,我粘贴了它的重要部分:

@Entity 
@Table(name="DATA.PERSON")
public class Data1 {



    @Id 
    @Column(name = "ID") 
    @GeneratedValue 
    private int id;

...

    @Column(name = "BIO")
    public final String bio;

...

    public Data1(String names, Integer dayBirth, Integer monthBirth, Integer yearBirth, String bio, String fileID) {
        this.names = names;
        this.dayBirth = dayBirth;
        this.monthBirth = monthBirth;
        this.yearBirth = yearBirth;
        this.bio = bio;
        this.fileID = fileID;
    }

...

    public String getBiog() {
        return bio;
    }

所以,当我尝试这样做时:

data = new Data1(names, dayBirth, monthBirth, yearBirth, bio, fileID);
                                fireActionPerformed();

                            DatabaseUtils.spremiRezultatTesta(data);

                            List<?> podaci = DatabaseUtils.dohvatiRezultateTestova();

                            String ffff = podaci.get(0).toString(); 

                            System.out.print(ffff);

我被提到例外。有什么帮助吗?

为此创建的数据库实体如下所示:BIO VARCHAR(80) NOT NULL我通常可以使用数据库中的SELECT FROM查询来读取它。

这是我的DatabaseUtils类,如果需要,用于从数据库保存和加载:

public class DatabaseUtils {

    public static void spremiRezultatTesta(Data1 data) { 
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("HibernatePersistenceUnit"); 
        EntityManager em = emf.createEntityManager(); 
        em.getTransaction().begin(); 
        em.persist(data); 
        em.getTransaction().commit(); 
        } 

        @SuppressWarnings("unchecked") 
        public static List<Data1> dohvatiRezultateTestova() { 
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("HibernatePersistenceUnit"); 
        EntityManager em = emf.createEntityManager(); 
        Query query = em.createQuery("FROM Data1"); 
        return query.getResultList();
        }


}

0 个答案:

没有答案