java - org.hibernate.property.access.spi.PropertyAccessException:访问字段时出错 [private java.lang.String,
问题描述
我可以通过邮递员添加新对象,但我想通过代码添加你能帮我吗?
org.hibernate.property.access.spi.PropertyAccessException:访问字段时出错 [private java.lang.String,
甚至这个 Meta 问题也不清楚。我想知道标题是否不是您自己的声音,而是您在 Stack Overflow 问题编辑器/UI 中遇到的错误。听起来可能当您尝试在主站点上写您的问题时,没有足够的段落(即非代码格式)文本。您能否截取错误的屏幕截图并将其放入您的问题中
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "image_entity")
public class ImageEntity implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column
private Long id;
@Column
private String hash;
@Column
private int size;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getHash() {
return hash;
}
public void setHash(String hash) {
this.hash = hash;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
}
public static void main(String[] args) throws IOException {
Session sessionOne = HibernateUtil.getSessionFactory().openSession();
sessionOne.beginTransaction();
ImageEntity image1 = new ImageEntity();
String a = null;
image1.setHash(a);
image1.setId(10l);
image1.setSize(100);
sessionOne.save(image1);
sessionOne.getTransaction().commit();
//HibernateUtil.shutdown();
SpringApplication.run(MasApplication.class, args);
}
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: org.hibernate.property.access.spi.PropertyAccessException: Error accessing field [private java.lang.String model.ImageEntity.hash] by reflection for persistent property [model.ImageEntity#hash] : model.ImageEntity@4322aef3
at org.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:75)
at org.hibernate.property.access.spi.GetterFieldImpl.getForInsert(GetterFieldImpl.java:90)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getPropertyValuesToInsert(AbstractEntityTuplizer.java:570)
at org.hibernate.tuple.entity.PojoEntityTuplizer.getPropertyValuesToInsert(PojoEntityTuplizer.java:226)
at org.hibernate.persister.entity.AbstractEntityPersister.getPropertyValuesToInsert(AbstractEntityPersister.java:5170)
at org.hibernate.event.internal.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:271)
at org.hibernate.event.internal.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:198)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:128)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:193)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:178)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:75)
at org.hibernate.event.service.internal.EventListenerGroupImpl.fireEventOnEachListener(EventListenerGroupImpl.java:108)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:618)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:611)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:606)
at MasApplication.main(MasApplication.java:70)
... 5 more
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.String field model.ImageEntity.hash to model.ImageEntity
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58)
at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
at java.base/java.lang.reflect.Field.get(Field.java:418)
at org.hibernate.property.access.spi.GetterFieldImpl.get(GetterFieldImpl.java:71)
... 22 more