java.lang.IllegalArgumentException:无法将java.lang.Long field test.models.Aktion.id设置为test.models.Aktion

java.lang.IllegalArgumentException:无法将java.lang.Long field test.models.Aktion.id设置为test.models.Aktion,java,hibernate,Java,Hibernate,我的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:

我的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
我搞不懂这是什么

它不能在那里设置场地是什么意思

我甚至不知道在这里发布什么代码


谢谢你的提示和帮助

所以。。。你的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的内容

我无法在没有看到整个代码的情况下进行此操作。。。请看一下这些教程-

问题可能存在于这个文件-test.services.akionservice中,或者在您完成bean配置的任何地方

希望这有帮助

Konto konto;

public Aktion() {
   konto = new Konto();
}

在构造函数Aktion()中初始化对象“knoto”时,您似乎拼写错误。原因是:javax.persistence.PersistenceException:org.hibernate.PropertyAccessException:无法通过test.models.Aktion.id的反射getter获取字段值-->检查此方法。addAktion(test.models.Aktion)@SarveshKumarSingh这是什么意思?@IsabelHM:这个方法是:public-Aktion-addAktion(Aktion-Aktion){entityManager.persist(Aktion);return-Aktion;}嗯。。。这是你的密码。。。所以你应该知道。。。从这个日志中我只能知道。。。可能模型
Aktion
缺少字段
id
的getter,并且
hibernate
对此不太满意。通过字段
id
的getter。。。我指的是一个名为
getId
的函数,它返回字段
id
。我不需要这样配置吗?您必须找到Hibernate+JPA的正确配置。。。也。。。如果你用的是弹簧之类的东西。。。那也会改变一些事情。好吧。。。看来我又要读一百篇文章了。。。。无论如何谢谢你!请修复您的代码段,它的格式看起来很糟糕。