java.lang.IllegalArgumentException : Can not set java. lang.Long 字段 test.models.Aktion.id 到 test.models.Aktion

标签 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: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 的内容。

如果没有看到完整的代码,我无法提供帮助...所以请看一下这些教程 - http://www.mkyong.com/tutorials/hibernate-tutorials/

问题可能出在这个文件 - test.services.AktionService 或您完成 bean 配置的任何位置。

希望这有帮助。

关于java.lang.IllegalArgumentException : Can not set java. lang.Long 字段 test.models.Aktion.id 到 test.models.Aktion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28236027/

相关文章:

java - 如何在 X 类工厂中声明方法,以便其子工厂可以使用子类 Class-1 常量?

java - cassandra : List of arrays 中的自定义列类型

java - 将二进制字符串转换为二进制

postgresql - 为什么我的 import.sql 文件没有自动运行?

java - 如何在 Spring boot 1.5.2 中终止 Hibernates 数据库连接?

java - 如何在 Java 中将文件剪切到剪贴板?

java - DialogInterface.OnClickListener 监听器变量无法解析 [java]

java - 在 hibernate native 查询中获取新创建的行 ID

java - Hibernate 的 Criteria With Examples 和 Query 返回不同的结果

java - hibernate 5.2 Criteria API 中的子查询示例