无法通过反射错误设置字段值

时间:2020-04-04 11:55:07

标签: java getter-setter

我有一个类似如下的课程:

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 个答案:

答案 0 :(得分:0)

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] 中的指南。

相关问题