【问题标题】:Could not set field value by reflection error反射错误无法设置字段值
【发布时间】:2020-07-16 13:19:31
【问题描述】:

我有一个像下面这样的课程:

import lombok.Getter;
import lombok.Setter;
import org.framework.model.core.baseInfo.SubSystemType;

import javax.persistence.Entity;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;


@Entity
@Table(name = "CORE_POWER_TYPE_DOCUMENT")
@PrimaryKeyJoinColumn(name = "Base_Power_Type_Id")
@Getter
@Setter
public class StoragePowerType extends BasePowerType {

    @Override
    public SubSystemType getsystemType() {
        return SubSystemType.storing;
    }

}

以下异常 id 被抛出:

"****无法通过反射设置字段值 [org.model.core.power.type.StoragePowerType@203cb33d] 值****"

你知道是什么问题吗??

【问题讨论】:

  • 请在代码和引号中以文本形式提供代码和异常。
  • 我的文字有问题

标签: java getter-setter


【解决方案1】:

BasePowerType 中的某些属性很可能被声明为 private,没有 getter 和 setter。

JPA 实体的每个属性必须要么是 public,要么定义了方法 get<PropertyName>()set<PropertyName>()。否则,您正在使用的框架(Hibernate?)将无法访问该属性。 所以使用任何一个:

public Long id;

或者:

private Long id;

public Long getId() { return id; }
public void setId(Long value) { id = value; }

尝试遵循here: Create the perfect JPA entity [closed] 的指导。

【讨论】:

  • 我在 basePowerType 类中没有任何属性!只有我覆盖在其根类中定义的公共类。
猜你喜欢
  • 2019-04-22
  • 2014-10-07
  • 1970-01-01
  • 2015-06-15
  • 2011-06-25
  • 2023-04-05
  • 2019-05-15
  • 2010-09-14
  • 2014-07-28
相关资源
最近更新 更多