当我尝试从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();
}
}