反射错误无法设置字段值
Posted
技术标签:
【中文标题】反射错误无法设置字段值【英文标题】: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] 值****"
你知道是什么问题吗??
【问题讨论】:
请在代码和引号中以文本形式提供代码和异常。 我的文字有问题 【参考方案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 类中没有任何属性!只有我覆盖在其根类中定义的公共类。以上是关于反射错误无法设置字段值的主要内容,如果未能解决你的问题,请参考以下文章
org.springframework.orm.jpa.JpaSystemException:无法通过反射设置字段值 [POST_INSERT_INDICATOR] 值