我的java ee应用程序抛出此异常,我无法找出原因:
Caused by: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of test.models.Aktion.id
at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:60)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:346)
at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:4746)
at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:4465)
at org.hibernate.engine.internal.ForeignKeys.isTransient(ForeignKeys.java:243)
at org.hibernate.event.internal.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:511)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:116)
at org.hibernate.event.internal.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:75)
at org.hibernate.internal.SessionImpl.firePersist(SessionImpl.java:811)
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:784)
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:789)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:1181)
... 118 more
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field test.models.Aktion.id to test.models.Aktion
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:58)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
at java.lang.reflect.Field.get(Field.java:387)
at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:57)
... 129 more
我无法弄清楚这是什么。
它无法在那里设置场地是什么意思?
我甚至不知道在这里发布什么代码......
感谢您的提示和帮助!
答案 0 :(得分:0)
所以...你的Aktion代码的部分应该是这样的,
@GeneratedValue
@Id
private Long id;
Konto knoto;
public Aktion() {
konto = new Konto();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
我认为你缺少的是Hibernate的正确配置...因为某种方式getId()方法没有返回任何值...这意味着它没有被初始化...这意味着hibernate没有得到通知生成这......或者它不知道如何产生这个。
我的猜测是 - hibernate没有收到通知来生成这个。这意味着您需要阅读有关使用Hibernate的更多信息。
如果没有看到整个代码,我无法帮助解决这个问题......所以请查看这些教程 - http://www.mkyong.com/tutorials/hibernate-tutorials/
问题可能在于此文件 - test.services.AktionService或您完成bean配置的任何位置。
希望这有帮助。
答案 1 :(得分:-1)
Konto konto;
public Aktion() {
konto = new Konto();
}
好像你拼错了对象' knoto'当你在构造函数Aktion()中初始化它时。